MM
Мидлвары:
Мидлвары представляют собой прослойку, могут хранить в себе бизнес-логику, которая будет отрабатывать до или после запроса. Также посредством мидлваров $request передаётся дальше приложению. Применяются для односложного ответа: можно/нельзя показывать страницу
Гейты:
Гейты используются, когда нужно проверить что-то конкретное в модели. Чем гейты отличаются от политики в душе не чаю. Мб, методами политики удобно во вьюшках проверять при помощи @can