Get model that has the status (previous or current status)
/**
* return all Delivery that was pickup
* @param $query
* @param null $user_id
* @return mixed
*/
public function scopePickupStatus($query, $user_id=null)
{
$status = DeliveryStatus::IN_PROGRESS;
return $query->whereHas(
'statuses',
function ($query) use ($status, $user_id) {
$query->where('name', $status);
if (!empty($user_id)) {
$query->where('causer_id', $user_id);
}
}
);
}