Возможно надо ловить и кидать пользовательское исключение, чтобы пользователя редиректнуло на красивую страницу ошибки. Но пока наверное лучше так оставить.
А rollback не надо делать в репозитории, как в yii2? Или в cycle это автоматом при неудачном ран?