public static function flushAuthorityEvents($controllerName = null)
{
$controllerName = $controllerName ?: get_called_class();
$events = app('events');
$listeners = (array) get_property($events, 'listeners');
foreach ($listeners as $eventName => $listener) {
$remove = false;
// flag
if ($controllerName === "*") {
// All Controllers
if (starts_with($eventName, "router.filter: controller.")) {
$remove = true;
}
} elseif (preg_match("/^router\\.filter: controller\\.[^.]+?\\.{$controllerName}/", $eventName)) {
$remove = true;
}
if ($remove) {
$events->forget($eventName);
}
}
}