Не работает 2+ фильтра под одним whereHas laravel

Объединил все фильтры под один whereHas, т.к. из-за каждого whereHas добавлялся exists на каждый запрос, что очень сильно замедляло работу запроса:

 public function filterByProperties(array $filters): void
    {
        $this->builder->whereHas('properties', function ($query) use ($filters) {
            foreach ($filters as $propertyName => $value) {
                if (!empty($value)) {
                    $propertyIds = DB::table('properties')
                        ->where('name', $propertyName)
                        ->pluck('id');

                    $query->whereIn('property_id', $propertyIds)
                        ->where('value', $value);
                }
            }
        });
    }

Таблицы products, properties, product_properties, первые две связаны через третью смежную belongsToMany.

Вот один из нескольких фильтров в блейде:

 <div>
    @foreach($carBodies as $carBody)
        <h5>{{ $carBody->name }}</h5>
        @foreach($carBody->propertiesList as $property)
            <div class="form-check m-2">
                <input
                    class="form-check-input"
                    type="radio"
                    name="filter_by_properties[Кузов][]"
                    value="{{ $property->value }}"
                    id="car_body_{{ Str::slug($property->value) }}">
                <label
                    class="form-check-label"
                    for="car_body_{{ Str::slug($property->value) }}">
                    {{ $property->value }}
                </label>
            </div>
        @endforeach
    @endforeach
</div>

Проблема: когда выбираю 1 фильтр, все работает, стоит выбрать 2 и больше, фильтры не срабатывают и появляется чисто белая страница


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