Вот как. Видимо я неправильно понял. Пойду погуглю-почитаю
Немного расскажу как я понимаю принцип "Репозиторий" а вернее IOC - он предназначен больше для того чтоб его можно было легко переписать, есть у тебя реализация работы с данными сущности Article (все работает, все прекрасно) в какой то момент необходимо изменить реализацию (заказчик захотел) ты так же наследуешься от интерфейса и реализуешь другой функционал , и когда нужно запустить новый функционал меняешь класс реализации в service Provider. Во втором случае ты можешь сделать интерфейс записи данных и реализовать его для записи в БД и в Файл, интерфейс один реализации две, в сервис провайдере указываешь в каком из контроллеров какая будет реализация, но загружаешь в конструкторе интерфейс =)))