where('workspace_id', $workspaceId) ->where('agent_id', $agentId) ->value('id'); $query = CreditEntry::query() ->where('workspace_id', $workspaceId) ->where(function (Builder $builder) use ($agentId, $nodeId): void { $builder->where('agent_id', $agentId); if ($nodeId !== null) { $builder->orWhere(function (Builder $legacy) use ($nodeId): void { $legacy->whereNull('agent_id') ->where('fleet_node_id', $nodeId); }); } }); if ($nodeId === null && ! $query->exists()) { throw new \InvalidArgumentException('Fleet node not found'); } return $query ->latest() ->limit($limit) ->get(); } }