// app/Events/PermissionsChanged.php namespace App\Events; use Illuminate\Broadcasting\PrivateChannel; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Broadcasting\InteractsWithSockets; use Illuminate\Contracts\Broadcasting\ShouldBroadcast; class PermissionsChanged implements ShouldBroadcast { use Dispatchable, InteractsWithSockets; public function __construct(public int $userId) {} public function broadcastOn() { return new PrivateChannel("user.{$this->userId}"); } public function broadcastAs() { return 'permissions.changed'; } }