lotteryAdmin(); abort_if($admin === null, 401); $denied = AdminAgentNodeAccess::denyUnlessNodeVisible($admin, $agent_node); if ($denied !== null) { return $denied; } $children = $agent_node->children()->orderBy('code')->get(); $profiles = AgentProfile::query() ->whereIn('agent_node_id', $children->pluck('id')) ->get() ->keyBy('agent_node_id'); $items = $children ->map(static function (AgentNode $child) use ($profiles): array { $profile = $profiles->get($child->id); return AgentNodePresenter::item( $child, $profile instanceof AgentProfile ? $profile : null, ); }) ->all(); return ApiResponse::success(['items' => $items]); } }