Laravel Eloquent查询使用where

I have two models. A status and a SaleDetails.

Status
------ 
  id
 name
 slug

I didn't define any relationship from Status to SaleDetails.

SaleDetails
-----------  
  id
  id_statuses //connects it to the status table
  id_products
  price
  qty

in the Model:

  public function status(){
    return $this->belongsTo('App\Status', 'id_statuses', 'id');
}

So what I am trying to do here is get all orders that whose status match a certain slug. E.g dd($this->sale_details->where('status.slug', 'pending')

With what I have using this:

$orders = $this->sale_details->with('product', 'status')->today()->get();

I should be able to filter them based on the status slugs in the frontend, but I want to just do it straight from here.

What's the best way to go about this?

You should use whereHas() it allows you to specify additional filters for the related model to check.

To apply the where condition you can use whereHas() like,

$status = "pending";

$this->sale_details->whereHas('status', function($q) use ($status){
   $q->where('slug', $status);
})->get();

i think, better than using query builder if you want fast proccess