Почему не объединить работу в Middleware?
Service Provider и Middleware отвечают за разные вещи. И один не заменяет второй.
Разделение ответсвенности.
Какой практической цели служит Service Provider?
Service Provider умеет делать только что, что от него необходимо. В нем вся логика работы.
Middleware содержит логику для работы с запросом, оно не знает КАК ИМЕННО авторизовывать пользователя. Оно знает что нужно дернуть AuthServiceProvider::guest(), например, и в зависимости от результата пропустить запрос дальше или прервать его.
Для простых приложений это не критично, можно хоть один GodObject на всё сделать, и оно будет работать.
Нужно мысль в плане расширения функционала.