Ну мы сидим на ларе, вы не переходите например на доктрину, то есть менять “способ работы с БД” не собираетесь. Первый вопрос, тогда зачем делать еще один уровень “абстракции”?
Вы используете далее модели от Лары, создете “сервис” для логики, и там вам нужно получить юзеров с ролью (как писали потом пример). В сервисе вы вместо вывозва двух методов от модели, “зовете” репозиторий, и потом через него эти два метода вызываете. Но что мешало вызвать их там же? Нужно переиспользовать? Давайте вынесем их в отдельный класс работы с юзерами, или отдельный метод, если переиспользуем тут же. Вы не планируете менять далее ORM, работаете с одной, проект пишете не под OpenSource, где в теории кто-то захочет поменять ORM, так зачем репозиторий? Что бы вписать в список регалий проекту, или так в книжках пишут, что нужно использовать много паттернов?