lotteryAdmin(); abort_if($admin === null, 401); $denied = AdminAgentNodeAccess::denyUnlessNodeVisible($admin, $agent_node); if ($denied !== null) { return $denied; } if (! AdminAgentScope::nodeManageableBy($admin, $agent_node)) { return AdminAgentNodeAccess::denyUnlessNodeVisible($admin, $agent_node) ?? AdminAgentNodeAccess::denyUnlessCanManageParent($admin, $agent_node); } if ($agent_node->isRoot() && ! $admin->isSuperAdmin()) { return AdminAgentNodeAccess::denyUnlessCanManageParent($admin, $agent_node); } $before = AgentNodePresenter::item($agent_node); $node = $service->update($agent_node, $request->validated()); $after = AgentNodePresenter::item($node); AuditLogger::recordForAdmin( $admin, $request, 'system', 'agent_node.update', 'agent_node', (string) $node->id, $before, $after, ); return ApiResponse::success($after); } }