where(static function (Builder $query): void { $query->where('helpdesk_agent', true)->orWhere('helpdesk_admin', true); }) ->withCount(['helpdeskAssignedTickets as open_helpdesk_tickets_count' => static function (Builder $query): void { $query->whereNull('completed_at'); }]); if ($categoryId !== null) { $category = Category::query()->find($categoryId); $agentIds = $category?->agents()->pluck('users.id')->all() ?? []; if ($agentIds !== []) { $query->whereIn('id', $agentIds); } } /** @var User|null $agent */ $agent = $query->orderBy('open_helpdesk_tickets_count')->orderBy('id')->first(); return $agent?->id; } }