Потому я думаю о создании отдельного эндпоинта и контроллера, который будет внутри себя это хендлить. Но я не понимаю как внутри него объединять транзакции и сортировать их без лишних запросов к базе. Пока что из тупого вижу брать 50 ASC из одной таблицы, 50 ASC из второй таблицы, собирать их в массив из 100 элементов, и этот массив уже опять сортировать ASC и обрезать до 50 элементов. Но это явно лишнее + невозможность пагинации
Смотри. Во первых контроллер это не то, что ты планируешь написать. Контроллер это вполне специфичный компонент, который занимается исключительно делегированим исполнения ASAP.