Во-первых, вы на правильном пути, желая правильно разделить проблемы.Вы будете благодарны, если будете сопровождать вас через 6-12 месяцев.
ИМХО, ваши контроллеры Catalyst должны быть максимально тонкими с бизнес-логикой в различных моделях.Это облегчает тестирование, потому что вам не нужно иметь дело с Catalyst.Я немного думал о разделении моделей.Я сталкивался с двумя школами мысли:
1) Сделайте так, чтобы у ваших классов DBIx :: Class Result была бизнес-логика.Этот подход удобен и прост.
2) Создайте автономную модель, созданную экземпляром Controller и имеющую объект схемы DBIx :: Class.Модель будет использовать схему DBIC для запроса базы данных, а затем использовать полученные данные в своих собственных методах бизнес-логики.Этот подход может быть лучше, если у вас много бизнес-логики, поскольку вы отделяете доступ к БД от бизнес-логики.
Лично я исторически использовал подход № 1, но склоняюсь к # 2 для более крупных приложений.