На самом деле в Laravel довольно сложно следовать. Ваша IDE извлекает определение группы из Router вместо RouteRegistrar.
Внутри Router.php:
public function group(array $attributes, $routes)
Это поддерживает более старый стиль определений групп маршрутов, когда промежуточное ПО определяется в атрибутах, а закрытие ваших маршрутов будет вторым аргументом.
Внутри RouteRegistrar.php:
public function group($callback)
Это новый стиль, в котором группа принимает только закрытие.
Мне не нравится тот факт, что они использовали условие в __call вместо определения метода для промежуточного программного обеспечения, но когда вы вызываете Route :: middleware, фасад переходит к вызову Router и Router :: __ возвращает экземпляр RouteRegistrar, потому что этой линии:
if ($method == 'middleware') {
return (new RouteRegistrar($this))->attribute($method, is_array($parameters[0]) ? $parameters[0] : $parameters);
}