Мы предложили избавиться от «магических чисел» внутри кода, заменив их на константы, вынести кэширование в отдельный метод (чтобы можно было при необходимости выбирать кэшированный или прямой результат), разбить большие методы для лучшей читаемости. Кроме того, стоит использовать кэш, чтобы не подсчитывать при каждом запросе количество элементов (на Postgre это ресурсоемкий процесс), а также не выдавать подробности ошибок через $e->getMessage даже в интерфейсе администратора.