$collaborators = $this->query()->staff()
->join('shops', '
shops.id', 'collaborators.shop_id')
->join('roles', '
roles.id', 'collaborators.role_id')
->where(function ($query) use ($searchValue){
$query
->where('
collaborators.id', 'LIKE', "%{$searchValue}%")
->orWhere('
collaborators.name', 'LIKE', "%{$searchValue}%")
->orWhere('collaborators.rating', 'LIKE', "%{$searchValue}%")
->orWhere('
collaborators.phone', 'LIKE', "%{$searchValue}%")
->orWhere('
collaborators.email', 'LIKE', "%{$searchValue}%")
->orWhere('
roles.name', 'LIKE', "%{$searchValue}%")
->orWhere('
shops.name', 'LIKE', "%{$searchValue}%");
})
->offset($start)
->limit($limit)
->orderBy('collaborators.' . $order, $directions)
->get();
$totalFiltered = count($collaborators);