**What I am trying to do:** I'm trying to get real-time database notifications working in Filament v4 using Laravel Reverb for WebSocket broadcasting. The notifications should appear instantly in the admin panel without requiring a page refresh. **What I did:** 1. Set up Laravel Reverb WebSocket server (working correctly) 2. Configured Echo.js 3. Added database notifications to AdminPanelProvider: `->databaseNotifications()->databaseNotificationsPolling('60s')` 4. Tested with custom broadcast events (working perfectly) 5. Verified that notifications are saved to database correctly **My issue/the error:** Broadcasting works perfectly for custom events, but Filament's `Notification::make()->broadcast()` notifications don't trigger real-time updates in the admin panel. The notifications only appear after manual page refresh, even though: - WebSocket connection is established successfully - Custom events broadcast and are received instantly - Database notifications are saved correctly - Queue workers are processing `Filament\Notifications\BroadcastNotification` jobs without errors **Code:** Testing route that works with custom events but not with Filament notifications: ```php Route::get('/test', function () { $user = User::find(1); // This saves to DB but doesn't trigger real-time updates Notification::make() ->title('Test Notification') ->body('This notification only appears on page refresh') ->success() ->send($user) ->broadcast($user) ->sendToDatabase($user); // This custom event broadcasts and shows instantly broadcast(new \App\Events\TestEvent('This appears immediately')); return redirect('/admin'); }); ``` Echo.js configuration (working for custom events): ```javascript window.Echo = new Echo({ broadcaster: 'reverb', key: import.meta.env.VITE_REVERB_APP_KEY, wsHost: import.meta.env.VITE_REVERB_HOST, wsPort: import.meta.env.VITE_REVERB_PORT ?? 6001, authEndpoint: '/broadcasting/auth', }); // Custom events work perfectly window.Echo.channel('test-channel') .listen('.test.message', (e) => { console.log('Custom event received instantly:', e); }); ``` AdminPanelProvider configuration: ```php ->databaseNotifications() ->databaseNotificationsPolling('60s') ``` **Environment:** - Laravel 12.x - Filament v4.0 - Laravel Reverb v1.0 - Queue workers running correctly - All Filament first-aid steps completed **Question:** Is there a specific channel name or event format that Filament notifications use for broadcasting? The documentation shows that `->broadcast($user)` should work, but it seems like the frontend isn't listening to the correct channel or the broadcast format is different from what Echo expects. Any guidance on debugging this or the correct way to make Filament notifications appear in real-time would be greatly appreciated! ## Additional Debug Information ### Queue Jobs Processing Successfully ``` [queue] Filament\Notifications\BroadcastNotification ... RUNNING [queue] Filament\Notifications\BroadcastNotification 18.40ms DONE [queue] Filament\Notifications\DatabaseNotification .... RUNNING [queue] Filament\Notifications\DatabaseNotification 15.78ms DONE [queue] Illuminate\Notifications\Events\BroadcastNotificationCreated RUNNING [queue] Illuminate\Notifications\Events\BroadcastNotificationCreated 13.67ms DONE ``` ### WebSocket Connection Logs ``` echo.js:29 Event received: state_change {previous: 'connecting', current: 'connected'} echo.js:29 Event received: connected {socket_id: '148426361.788853243'} echo.js:24 Echo connected to Reverb! echo.js:29 Event received: message {event: 'pusher_internal:subscription_succeeded', channel: 'test-channel', data: {…}} ``` ### Working Custom Event Setup ```php // Custom event that works perfectly class TestEvent implements ShouldBroadcast { public function broadcastOn(): array { return [ new Channel('test-channel'), new PrivateChannel('App.Models.User.' . $this->user->id) ]; } public function broadcastAs(): string { return 'test.notification'; } } ``` The custom event triggers immediately, but Filament's built-in notification broadcasting doesn't seem to reach the frontend properly.