lotteryAdmin(); abort_if($admin === null, 401); $denied = AdminAgentNodeAccess::denyUnlessNodeVisible($admin, $agent_node); if ($denied !== null) { return $denied; } if (! $admin->isSuperAdmin() && ! $admin->hasAdminPermission('prd.agent.role.manage')) { return AdminAgentNodeAccess::denyUnlessCanManageParent($admin, $agent_node); } $role = $service->createForAgent($admin, $agent_node, $request->validated()); AuditLogger::recordForAdmin( $admin, $request, 'agent', 'agent_role.create', 'admin_role', (string) $role->id, null, AdminRoleApiPresenter::item($role), ); return ApiResponse::success(AdminRoleApiPresenter::item($role)); } }