model->newQuery()->withCount('clients'); if (!empty($filters['search'])) { $query->where(function ($builder) use ($filters) { $builder ->where('name', 'like', '%' . $filters['search'] . '%') ->orWhere('description', 'like', '%' . $filters['search'] . '%'); }); } $sortField = $filters['sort_by'] ?? 'created_at'; $sortDirection = $filters['sort_direction'] ?? 'desc'; return $query->orderBy($sortField, $sortDirection)->paginate($perPage); } }