Внедряли на проекте, как раз
andersao/l5-repository. Пришли к выводу, что если тебе действиетльно нужно как-то абстрагироваться от использования Eloquent, то это может иметь смысл, в других случаях, это только усложняет код. Т.к. приходится переписывать уже существующие методы, усложняется работа со связями. Так же к слову о репозиториях, они должны восприниматься, как абстрактное хранилище и не иметь методов по типу
create
,
update
.
Если же говорить об абстрагировании бизнес логики, что бы не увеличивать контроллеры, то можно внедрить классы-сервисы как описано в данной рекомендации -
https://github.com/alexeymezenin/laravel-best-practices#business-logic-should-be-in-service-classЛибо, вот был интересный доклад на Laracon -
https://www.youtube.com/watch?v=dfgtKb-VpRk