$capabilities * * @throws \InvalidArgumentException */ public function handle(int $workspaceId, string $agentId, array $capabilities = []): ?FleetTask { $node = FleetNode::query() ->where('workspace_id', $workspaceId) ->where('agent_id', $agentId) ->first(); if (! $node) { throw new \InvalidArgumentException('Fleet node not found'); } $task = FleetTask::pendingForNode($node)->first(); if (! $task) { return null; } $task->update([ 'status' => FleetTask::STATUS_IN_PROGRESS, 'started_at' => $task->started_at ?? now(), ]); $node->update([ 'status' => FleetNode::STATUS_BUSY, 'current_task_id' => $task->id, ]); return $task->fresh(); } }