Ok, entonces qué es un grupo de middleware? La respuesta es sencilla, si vas al archivo app/Http/Kernel.php
ahí vas a poder encontrar un arreglo llamado $middlewareGroups
que incluye las claves "web" y "api".
Entendiendo ya los grupos de middleware ahora pasaré a explicar como agregar un middleware desde el service provider de un paquete.
Es tan sencillo como hacer lo siguiente:
1<?php 2 3namespace MyPackage\Namespace; 4 5use MyPackage\Http\Middleware\CustomMiddleware; 6use Illuminate\Support\ServiceProvider; 7 8class MyServiceProvider extends ServiceProvider 9{10 public function register()11 {12 /** @var Router $router */13 $router = $this->app['router'];14 $router->pushMiddlewareToGroup('web', CustomMiddleware::class);15 }16}
También si quisieran agregar un alias para un middleware lo pueden hacer de esta forma:
1<?php 2 3namespace MyPackage\Namespace; 4 5use MyPackage\Http\Middleware\CustomMiddleware; 6use Illuminate\Support\ServiceProvider; 7 8class MyServiceProvider extends ServiceProvider 9{10 public function register()11 {12 /** @var Router $router */13 $router = $this->app['router'];14 $router->aliasMiddleware(15 'custom.middleware',16 CustomMiddleware::class17 );18 }19}
Y ya a partir de aquí queda de ustedes usarlo en las rutas o en el constructor de sus controladores. 😉