You can pass arguments to your middleware for specific routes by appending ':' followed by the value. For example, I'm enforcing different authentication methods based on the route using a single middleware.
Route::get('...')->middleware('auth.license');Route::get('...')->middleware('auth.license:bearer');Route::get('...')->middleware('auth.license:basic');
class VerifyLicense{    public function  handle(Request $request, Closure $next, $type = null)    {        $licenseKey  = match ($type) {            'basic'  => $request->getPassword(),            'bearer' => $request->bearerToken(),            default  => $request->get('key')        };         // Verify license and return response based on the authentication type    }}
Tip given by @Philo01