lotteryAdmin(); abort_if($admin === null, 401); $denied = AdminAgentNodeAccess::denyUnlessNodeVisible($admin, $agent_node); if ($denied !== null) { return $denied; } $roles = AdminRole::query() ->where('scope_type', AdminRole::SCOPE_AGENT) ->where('owner_agent_id', $agent_node->id) ->orderBy('sort_order') ->orderBy('id') ->get(); return ApiResponse::success([ 'agent_node_id' => (int) $agent_node->id, 'items' => $roles->map(static fn (AdminRole $role): array => AdminRoleApiPresenter::item($role))->all(), ]); } }