with(['urls', 'media', 'ancestors']); } public function toSearchableArray(Model $model): array { /** @var Collection $model */ $data = parent::toSearchableArray($model); $data['parent_id'] = $model->parent_id; $data['_lft'] = $model->_lft; $data['_rgt'] = $model->_rgt; $data['collection_group_id'] = $model->collection_group_id; $data['slugs'] = $model->urls->pluck('slug')->unique()->values()->all(); $data['thumbnail'] = $model->getThumbnailImage() ?: null; $data['ancestors'] = $model->ancestors ->sortBy('_lft') ->map(fn ($ancestor) => [ 'id' => $ancestor->id, 'name' => $ancestor->translateAttribute('name'), ]) ->values() ->all(); $data['product_count'] = Product::search('') ->options(['filter' => "collection_ids = \"{$model->id}\""]) ->paginateRaw(perPage: 1, page: 1) ->total(); return $data; } }