lotteryAdmin(); abort_if($admin === null, 401); $agent = $admin_user->primaryAgentNode(); if ($agent === null) { abort(404); } $denied = AdminAgentNodeAccess::denyUnlessNodeVisible($admin, $agent); if ($denied !== null) { return $denied; } if (! $admin->isSuperAdmin() && ! $admin->hasPermissionCode('agent.node.manage')) { return AdminAgentNodeAccess::denyUnlessCanManageParent($admin, $agent); } $before = AdminUserApiPresenter::listItem($admin_user); $user = $service->syncRoles($agent, $admin_user, $request->validated('role_ids')); $after = AdminUserApiPresenter::listItem($user); AuditLogger::recordForAdmin( $admin, $request, 'agent', 'agent_admin_user.sync_roles', 'admin_user', (string) $user->id, $before, $after, ); return ApiResponse::success($after); } }