Как отфильтровать связанные данные из элоквент коллекции?

Имеется метод, который на странице категории товара, выводит товары из этой категории. Делаю так:

public function category(ProductFilterRequest $request, $code){
        $skusQuery = Category::with('skus')->ByCode($code)->first();
        //$skusQuery = Category::with('skus.product')->ByCode($code)->first();
            //Здесь в категории 4 продукта и в каждом продукте несколько вариантов ску. 
            if($request->filled('price_from')){
                $skusQuery->skus()->where('price', '>=', $request->price_from));
                //если делать дамп энд дай тут, использую $skusQuery->skus->where, то они фильтруются но только здесь. 
           }
            if($request->filled('price_to')){
                $skusQuery->skus()->where('price', '<=', $request->price_to));
            }
            ...
            //К этому моменту уже никакой фильтрации нет. Так же выводится всё, как и в начале.
        $sku = $skusQuery->skus()->simplePaginate()->withPath($request->getUri());
        return view('categories', compact(['sku', 'code']));
    }

У модели категории сделал связь 'ко многим через'. Чтобы через продукт получить ску(товарные предложения).

public function skus()
    {
        return $this->hasManyThrough(Sku::class, Product::class);
    }

Можно конечно просто получать все продукты или все товарные предложения, а потом их фильтровать по категориям. Но мне кажется это не правильно. Уже продолжительное время не могу понять как через категории фильтровать товарные предложения.


Ответы (0 шт):