Как фильтровать кешированный запрос в Laravel

Нужна помощь / совет с этой концепцией. У меня довольно сложный свободный запрос, который тянет строки по фильтрам пользователей.

Я думал о том, чтобы сделать нефильтрованный (только соединение, без где / whereIns) запрос, который будет кэшироваться, а затем каким-то образом фильтровать этот кешированный запрос в соответствии с потребностями пользователей.

Задержка 2-3 секунд при запросе db каждый раз, когда изменяется фильтр формы, поэтому я предполагаю, что это может работать лучше.

Теперь нефильтрованный запрос составляет около 5 тыс. Строк, а средний отфильтрованный – 500-1000 строк.

Запрос составляет около 25 столбцов с 4 CONCATS, 3 операциями CASE и 14 leftJoins.

Правильно ли это? Любые другие предложения?

Заранее спасибо!

Y