diff --git a/src/Illuminate/Routing/AbstractRouteCollection.php b/src/Illuminate/Routing/AbstractRouteCollection.php index 0c59a555009e..247521cb06f6 100644 --- a/src/Illuminate/Routing/AbstractRouteCollection.php +++ b/src/Illuminate/Routing/AbstractRouteCollection.php @@ -79,13 +79,21 @@ function ($method) use ($request) { */ protected function matchAgainstRoutes(array $routes, $request, $includingMethod = true) { - [$fallbacks, $routes] = (new Collection($routes))->partition(function ($route) { - return $route->isFallback; - }); + $fallbackRoute = null; - return $routes->merge($fallbacks)->first( - fn (Route $route) => $route->matches($request, $includingMethod) - ); + foreach ($routes as $route) { + if ($route->matches($request, $includingMethod)) { + if ($route->isFallback && $fallbackRoute === null) { + $fallbackRoute = $route; + + continue; + } + + return $route; + } + } + + return $fallbackRoute; } /**