ну не очень, в мидлвейр обычно выносят какие то базовые вещи, например проверить роль, итп, ну и выбора особо нет куда это еще вынести, а в случаях с обсервером можно
Можно вынести миддлвары в контроллеры, в тот же Request к примеру.
Но действуют они так же по принципу обсерверов, правда для Route.
Особенно проблемно, что они могут запускаться как в процессе запроса, так и при его завершении.