просто "размазал" логику на еще один дополнительный класс
Смотри у меня к примеру товары с характеристиками, ценами, фото, остатками тянуться себе в контроллере с помощью метода вынесенного в eloquent model. Теперь задача переписать эту логику на elasticSearch. В случае с read only repository я один класс добавляю, тестирую и в DI меняю на нужный. Ну и понятное дело что это не для повсеместного использования, а лишь при необходимости.