title: Function name must be a string in Laravel
body: <p>Laravel Framework 5.6.39
  I'm getting this error:</p>
  
  <pre><code>Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR)
  Function name must be a string
  </code></pre>
  
  <p>Here is what I'm doing.  In my <code>App/RouteServiceProvider.php</code></p>
  
  <pre><code>public function map()
  {
      $this-&gt;mapApiRoutes();
  
      $this-&gt;mapWebRoutes();
  
      $this-&gt;mapMercuriusRoutes();
  }
  
  protected function mapMercuriusRoutes()
  {
    Route::middleware(['web','auth','Mercurius'])
          -&gt;namespace('\Launcher\Mercurius\Http\Controllers')
          -&gt;group(base_path('routes/mercurius.php'));
  }
  </code></pre>
  
  <p>Then my route file <code>mercurius.php</code>:</p>
  
  <pre><code>// Mercurius home
  Route::get('/messages', ['as' =&gt; 'home', 'uses' =&gt; 'MessagesController@index']);
  // User Profile
  Route::get('/profile/refresh', 'ProfileController@refresh');
  Route::get('/profile/notifications', 'ProfileController@notifications');
  Route::post('/profile', 'ProfileController@update');
  </code></pre>
  
  <p>When I go to localhost:8000/messages as listed in the Mercurius routes file I get the error.  Any idea what I'm doing wrong?</p>
  
  <p>EDIT: INITIAL ERRORS:</p>
  
  <pre><code>$response = method_exists($pipe, $this-&gt;method)
                                  ? $pipe-&gt;{$this-&gt;method}(...$parameters)
                                  : $pipe(...$parameters);
  </code></pre>
  
  <p>The $pipe(...$parameters); is the highlighted one.</p>
  
  <pre><code>Symfony\Component\Debug\Exception\FatalThrowableError 
  …/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php152
  
  Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
  …/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php53
  
  Illuminate\Routing\Pipeline Illuminate\Routing\{closure}
  …/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php41
  </code></pre>