Best Practice при работе с репозиториями в Laravel?
Да, по реализации все верно вы себе представляете.Как все это смотрится с AR? 
Откровенно скажу, с AR это смотрится хреново. В том смысле, что вы не используете основные "преимущества" (Да, да, в кавычках, потому что эти самые преимущества облегчают и ускоряют разработку, но никак не способствуют улучшению качества кода и его поддержке) этого паттерна.В каждом из таких репозиторий будут повторяющиеся методы: all, find и прочие. Как быть в таком случае? Как вынести подобные методы в общий класс?
Создать базовый интерфейс для всех репозиториев и в нем описать эти методы, затем расширить интерфейс каждого конкретного репозитория. Можете плюсом ко всему написать абстрактный класс репозиторий и в нем написать универсальную реализацию этих самых общих методов (Для каждого типа репозиториев, разумеется). Но лично я бы так делать не стал.Правильно ли я размышляю вообще? Да, по реализации все верно вы себе представляете.
Для начала разберитесь для чего нужен репозиторий, вот на хабре писали хорошую статью https://habrahabr.ru/post/316836/ Чтобы выносить логику из контроллеров, используйте сервисы - https://laravel-news.ru/blog/tutorials/design-patt...