middleware так не работают. Они либо сначала выполняют свою логику и потом говорят следующему в цепочке "запускайся", либо сначала говорят следующему "запускаться" и потом отдают ответ. Собственно, эта цепочка - набор мидлвейров в порядке, в котором они указаны, и где-то там, если это дело запустить, будет вызов метода контроллера.
В целом это больше похоже на авторизацию, ежели аутентификацию, так что можете использовать $this->authorize('shops.filter')
или что то подобное. Ну или проверять аутентификацию, как вы хотели: Auth::authenticate()
Лучше без фасадов, конечно.