Я не знаю ни laravel ни symfony, но может идейно помогу.
Кода, скорее всего, будет больше, просто потому что вы все пишете сами. Меньше может стать только если вы что-то там доустановите в симфони и будете пользоваться этой надстройкой. Но идейно, у вас есть уже разделение на репозитории и вам нужен еще один слой бизнес логики. Вы можете и бизнес логику хранить в репозиториях, но тогда вопрос, а зачем вообще нужен этот слой репозиториев, если все можно хранить в контроллерах :). Вообще, репозитории должны быть как можно более общими. Какие-то простые запросы в базу типа, вернуть все или вернуть все у чего id равен чему-то. Такие вещи как флаги или сортировка, тоже можно уже сразу встроить в запросы, но обычно флаги - это уже бизнес логика. Так же как и какая-то кастомная сортировка. Для тких "хитрых" запросов обычно выделяется еще один слой. Бизнес-логика. К примеру, называем его Services и туда пробрасываем нашим репозитории и на основе них уже делаются методы типа GetActiveSoretedFilteredAndSoOnService. Ну и далее сервисы пробрасываются в контроллеры и конроллеры знают только про них. А про контроллеры вы правильно заметили. Такую логику переключений лучше там не держать. Хотя бывает разное. Да и вопрос, а зачем так переключать запросы в контроллере? В чем выгода? Может лучше на каждый пункт меню сделать отдельный метод get в контроллере? Или это специфика symfony? Что все через index надо делать.