diff --git a/src/Bootstrappers/BroadcastingConfigBootstrapper.php b/src/Bootstrappers/BroadcastingConfigBootstrapper.php index 6f0e8fbc..41c6bc7f 100644 --- a/src/Bootstrappers/BroadcastingConfigBootstrapper.php +++ b/src/Bootstrappers/BroadcastingConfigBootstrapper.php @@ -11,6 +11,8 @@ use Illuminate\Foundation\Application; use Stancl\Tenancy\Contracts\TenancyBootstrapper; use Stancl\Tenancy\Contracts\Tenant; use Stancl\Tenancy\Overrides\TenancyBroadcastManager; +use Illuminate\Support\Facades\Broadcast; +use Illuminate\Contracts\Broadcasting\Factory as BroadcastingFactory; class BroadcastingConfigBootstrapper implements TenancyBootstrapper { @@ -81,6 +83,10 @@ class BroadcastingConfigBootstrapper implements TenancyBootstrapper $this->app->extend(Broadcaster::class, function (Broadcaster $broadcaster) { return $this->app->make(BroadcastManager::class)->connection(); }); + + // Clear the resolved Broadcast facade instance so that it gets re-resolved as the tenant broadcast manager + // when used (e.g. in BroadcastController::authenticate) + Broadcast::clearResolvedInstance(BroadcastingFactory::class); } public function revert(): void @@ -89,6 +95,9 @@ class BroadcastingConfigBootstrapper implements TenancyBootstrapper $this->app->singleton(BroadcastManager::class, fn (Application $app) => $this->originalBroadcastManager); $this->app->singleton(Broadcaster::class, fn (Application $app) => $this->originalBroadcaster); + // Clear the resolved Broadcast facade instance so that it gets re-resolved as the central broadcast manager + Broadcast::clearResolvedInstance(BroadcastingFactory::class); + $this->unsetConfig(); }