title: BroadcastServiceProvider.php and broadcaster.php issues after Laravel 5.4 upgrade
body: <p>I'm a bit of a noob; forgive me if I'm missing something obvious.</p>
  
  <p>I have this class in my app to set up broadcast channels (for Pusher):</p>
  
  <pre><code>&lt;?php
  
  namespace App\Providers;
  
  use App\Models\Thread;
  use Illuminate\Support\ServiceProvider;
  use Illuminate\Support\Facades\Broadcast;
  
  class BroadcastServiceProvider extends ServiceProvider
  {
      /**
       * Bootstrap any application services.
       *
       * @return void
       */
      public function boot()
      {
          Broadcast::routes(['middleware' =&gt; ['api', 'jwt.auth']]);
  
          /*
           * Authenticate the user's personal channel...
           */
          Broadcast::channel('users.*.threads', function ($user, $userId) {
              return $user-&gt;obfuscated_id == $userId;
          });
  
          Broadcast::channel('threads.*', function ($user, $threadId) {
              return $user-&gt;can('participate', Thread::findByObfuscation($threadId));
          });
  
          Broadcast::channel('notifications.*', function ($user, $notifiableId) {
              return $user-&gt;obfuscated_id == $notifiableId;
          });
  
          Broadcast::channel('messages.*', function ($user, $userId) {
              return $user-&gt;obfuscated_id == $userId;
          });
      }
  }
  </code></pre>
  
  <p>This was working fine on Laravel 5.3 but, after an upgrade (using Laravel Shift) to 5.4, I started getting the error:</p>
  
  <pre><code>&lt;!-- language: lang-none --&gt;
  Symfony\Component\Debug\Exception\FatalThrowableError: Type error: Too few arguments to function App\Providers\BroadcastServiceProvider::App\Providers\{closure}(), 1 passed in /home/vagrant/Development/Peeps/api/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php on line 68 and exactly 2 expected in /home/vagrant/Development/Peeps/api/app/Providers/BroadcastServiceProvider.php:35
  </code></pre>
  
  <p>Comparing the previous and new versions of the Broadcaster.php file, there are a few changes, most suspiciously, this line:</p>
  
  <pre><code>$parameters = $this-&gt;extractAuthParameters($pattern, $channel, $callback);
  </code></pre>
  
  <p>which now passes an extra parameter, $callback.</p>
  
  <p>I think it is something to do with the way the callback functions are passed along the stack and am wondering if there's a better way to write the BroadcastServiceProvider.php that will be more friendly to the updated Illuminate classes.</p>
  
  <p>Any help greatly appreciated!</p>