with([ 'course' => fn ($query) => $query->with(['courseSystemItem', 'coverMedia'])->withCount('signups'), 'activity' => fn ($query) => $query->with(['activityTypeItem', 'sessions'])->withCount('signups'), ]) ->where('status', 1) ->orderBy('sort') ->orderByDesc('id') ->get() ->map(fn (Banner $banner) => MiniappPresenter::serializeBanner($banner)) ->values() ->all(); return $this->ok(['items' => $items]); } }