*/ public function search(string $ownerRef, int $organizationId, string $query, int $limit = 20): Collection { $query = trim($query); if ($query === '') { return new Collection; } return Visitor::owned($ownerRef) ->where('organization_id', $organizationId) ->where(function ($q) use ($query) { $q->where('full_name', 'like', "%{$query}%") ->orWhere('company', 'like', "%{$query}%") ->orWhere('phone', 'like', "%{$query}%") ->orWhere('email', 'like', "%{$query}%"); }) ->orderByDesc('is_frequent') ->orderBy('full_name') ->limit($limit) ->get(); } }