title: Laravel /broadcasting/auth Always forbidden with 403 Error
body: <p>I tried many solutions but no one works for me</p>
  <p>I've installed Laravel echo and pusher js and Pusher/Pusher</p>
  <p>#bootstrap.js</p>
  <pre><code>import Echo from 'laravel-echo';
  
  window.Pusher = require('pusher-js');
  
  window.Echo = new Echo({
      broadcaster: 'pusher',
      key: process.env.MIX_PUSHER_APP_KEY,
      cluster: process.env.MIX_PUSHER_APP_CLUSTER,
      encrypted: true,
  
  });
  </code></pre>
  <p>#.env</p>
  <pre><code>BROADCAST_DRIVER=pusher
  PUSHER_APP_ID=my_id
  PUSHER_APP_KEY=my_key
  PUSHER_APP_SECRET=my_secret
  PUSHER_APP_CLUSTER=eu
  </code></pre>
  <p>my event file NewMessage</p>
  <pre><code>class NewMessage implements ShouldBroadcast
  {
      use Dispatchable, InteractsWithSockets, SerializesModels;
      public $message;
      /**
       * Create a new event instance.
       *
       * @return void
       */
      public function __construct(Message $message)
      {
          $this-&gt;message = $message;
      }
  
      /**
       * Get the channels the event should broadcast on.
       *
       * @return \Illuminate\Broadcasting\Channel|array
       */
      public function broadcastOn()
      {
          return new PrivateChannel('messages.'. $this-&gt;message-&gt;to);
      }
      public function broadcastWith()
      {
          return [&quot;message&quot; =&gt; $this-&gt;message];
      }
  }
  </code></pre>
  <p>channel.php</p>
  <pre><code>Broadcast::channel('messages.{id}', function ($user, $id) {
      return $user-&gt;id === (int) $id;
  });
  </code></pre>
  <p>Vue App JS code</p>
  <pre><code>mounted(){
              Echo.private(`messages${this.user.id}`)
              .listen('NewMessage', (e) =&gt; {
                  this.handleIncoming(e.message)
              });
            },
  methods:{
        saveNewMessage(msg){
                  this.messages.push(msg);
              },
              handleIncoming(message){
                  if(this.selectedContact &amp;&amp; message.from == this.selectedContact.id ){
                      this.saveNewMessage(message);
                      return;
                  }
                  alert(message.text);
              }
            }
  </code></pre>
  <p>Api.php</p>
  <pre><code>Route::post('/conversation/send', 'Api\ContactController@sendNewMessage');
  </code></pre>
  <p>Contact Controller</p>
  <pre><code>public function sendNewMessage(Request $request)
      {
         $message = Message::create([
              'from' =&gt; $request-&gt;sender_id,
              'to' =&gt; $request-&gt;receiver_id,
              'text' =&gt; $request-&gt;text
          ]);
  
          broadcast(new NewMessage($message));
          return response()-&gt;json($message);
      }
  </code></pre>
  <p>I also read the official documentation everything is going good but I didn't figure out why, it's a throwing error. Have any idea?</p>