Возможно,
это решение вам понравится больше, чем entrust.
Но мне не понятно где правильно архитектурно это делать.
Нет четкого правила где именно это делать, все зависит от задачи. Например, для группы роутов, которые доступны только админу, удобней проверить в посреднике. А вот для редактирования поста, например, что пост может редактировать админ и пользователь который его создал удобней проверять уже в контроллере.