middleware('auth'); } public function __invoke() { $list = Auth::user() ->watchlist() ->firstOrFail(); $items = DB::table('channelables') ->where('channel_id', $list->id) ->pluck('channelable_type', 'channelable_id') ->map( fn($modelType, $itemId) => [ 'id' => $itemId, 'type' => $modelType, ], ) ->groupBy('type') ->map( fn($group) => $group->mapWithKeys( fn($item) => [ $item['id'] => true, ], ), ); return $this->success([ 'watchlist' => [ 'id' => $list->id, 'items' => $items, ], ]); } }