title: Laravel route method call works for closure function but not for Conroller@method
body: <p>what is the difference between:</p>
  
  <pre class="lang-php prettyprint-override"><code>Route::post('insert/{slug}/{page_number}/{person_type_id}/{user_id}', function($slug) {
      return Response::json(
      [
          'success' =&gt; false,
          'slug' =&gt; $slug
      ]);
  });
  </code></pre>
  
  <p>and this:</p>
  
  <pre class="lang-php prettyprint-override"><code>Route::post(
    '{slug}/users/page/{page_number}/insert-ben/{person_type_id}/user/{user_id}',
    'PersonsController@insertBen'
  );
  </code></pre>
  
  <p>The first one works. The latter used to work but it's no longer working now. I tried stepping through the code and the latter ends up going to the <code>UsersController@login</code> rather than to <code>PersonsConroller@insertBen</code>. So odd. This was working about a month ago. I'm trying to see what I changed with my version control but it's so strange that it's not working all of a sudden. </p>
  
  <p>My posts are working fine as I can login and the post call to <code>UsersController@doLogin</code> is being called.</p>
  
  <p>I even tested with this call:</p>
  
  <pre class="lang-php prettyprint-override"><code>Route::post(
    '{slug}/users/page/{page_number}/insert-ben/{person_type_id}/user/{user_id}',
    'UsersController@insertTest'
  );
  </code></pre>
  
  <p>/controllers/UsersController.php</p>
  
  <pre class="lang-php prettyprint-override"><code>public function insertTest($slug)
  {
      if ( Request::ajax() ) {
          return Response::json( [
  
              'success' =&gt; false,
              'slug'      =&gt; $slug
  
          ] );
      }
  }
  </code></pre>
  
  <p>But the <code>PersonsController@insertBen</code> doesn't work. My <code>PersonsController</code> is working fine as I can update using this controller. So what could be the problem? Anyone encounter something similar? Why does the route.php call the post on some of  <code>Controller@method</code> but not on others? Why does the closure function work but not the <code>Controller@method</code>?</p>
  
  <h1>UPDATE</h1>
  
  <p>Here's the entire file. I even tested by putting that line close to the top of the file too.</p>
  
  <pre class="lang-php prettyprint-override"><code>/** ------------------------------------------
   *  Route binding
   *  ------------------------------------------
   */
  App::bind('Acme\Repositories\Interfaces\IPersonRepository', 'Acme\Repositories\Person\DbPersonRepository');
  App::bind('Acme\Repositories\Interfaces\IUserRepository', 'Acme\Repositories\User\DbUserRepository');
  App::bind('Acme\Repositories\Interfaces\IPage15Repository', 'Acme\Repositories\Pages\Page15Repository');
  
  /** ------------------------------------------
   *  Route model binding
   *  ------------------------------------------
   */
  Route::model('user', 'User');
  Route::model('comment', 'Comment');
  Route::model('post', 'Post');
  Route::model('role', 'Role');
  
  /** ------------------------------------------
   *  Route constraint patterns
   *  ------------------------------------------
   */
  Route::pattern('comment', '[0-9]+');
  Route::pattern('post', '[0-9]+');
  Route::pattern('user', '[0-9]+');
  Route::pattern('role', '[0-9]+');
  Route::pattern('token', '[0-9a-z]+');
  
  
  /** ------------------------------------------
   *  Admin Routes
   *  ------------------------------------------
   */
  Route::group(array('prefix' =&gt; 'admin', 'before' =&gt; 'auth'), function()
  {
      # User Management
  
      Route::get('users/', ['as' =&gt; 'admin.users.get.index', 'uses' =&gt; 'AdminUsersController@getIndex']);
      Route::get('users/index', ['as' =&gt; 'admin.users.get.index_page', 'uses' =&gt; 'AdminUsersController@getIndex']);
      Route::get('users/data', ['as' =&gt; 'admin.users.get.data', 'uses' =&gt; 'AdminUsersController@getData']);
      Route::get('users/{user}/edit_user_by_page/{page_number}', ['as' =&gt; 'admin.users.get.edit_user_by_page', 'uses' =&gt; 'AdminUsersController@getEditUserByPage']);
  
      # Admin Dashboard
      Route::get('/', 'AdminDashboardController@getIndex' );
  });
  
  // Confide routes
  Route::get('users/create', ['as' =&gt; 'confide.users.get.create', 'uses' =&gt; 'UsersController@create']);
  Route::post('users', ['as' =&gt; 'confide.users.post.store', 'uses' =&gt; 'UsersController@store']);
  Route::get('users/login', ['as' =&gt; 'confide.users.get.login', 'uses' =&gt; 'UsersController@login']);
  Route::post('users/login', ['as' =&gt; 'users.login', 'uses' =&gt; 'UsersController@doLogin']);
  Route::get('users/confirm/{code}', ['as' =&gt; 'confide.users.get.confirm', 'uses' =&gt; 'UsersController@confirm']);
  Route::get('users/forgot_password', [ 'as' =&gt; 'users.forgot_password', 'uses' =&gt; 'UsersController@forgotPassword' ]);
  Route::post('users/forgot_password', ['as' =&gt; 'confide.users.post.forgot_password', 'uses' =&gt; 'UsersController@doForgotPassword']);
  Route::get('users/reset_password/{token}', ['as' =&gt; 'confide.users.get.reset_password', 'uses' =&gt; 'UsersController@resetPassword']);
  Route::post('users/reset_password', ['as' =&gt; 'confide.users.post.reset_password', 'uses' =&gt; 'UsersController@doResetPassword']);
  Route::get('users/resendconfirmationemail', [ 'as' =&gt; 'users.resendconfirmationemail', 'uses' =&gt; 'UsersController@getResendConfirmationEmail' ]);
  Route::post('users/resendconfirmationemail', ['as' =&gt; 'confide.users.post.resendconfirmationemail', 'uses' =&gt; 'UsersController@postResendConfirmationEmail']);
  Route::get('users/logout', ['as' =&gt; 'confide.users.get.logout', 'uses' =&gt; 'UsersController@logout'])-&gt;after('invalidate-browser-cache');
  
  /** ------------------------------------------
   *  Frontend Routes
   *  ------------------------------------------
   */
  
  Route::get('{slug}/users/page', ['as' =&gt; 'users.page.path', 'uses' =&gt; 'UsersController@getPage'])-&gt;where('slug', '^\b(ir){0,1}(revocable){1}\b$');
  
  //get page_number
  Route::get('{slug}/users/page/{page_number}', ['before' =&gt; 'auth', 'as' =&gt; 'users.page.page_number', 'uses' =&gt; 'PersonsController@index'])-&gt;where('slug', '^\b(ir){0,1}(revocable){1}\b$');
  
  //get edit
  Route::get('{slug}/users/page/{page_number}/edit', ['before' =&gt; ['auth', 'slug' ], 'as' =&gt; 'users.page.page_number.edit', 'uses' =&gt; 'PersonsController@edit'])-&gt;where('slug', '^\b(ir){0,1}(revocable){1}\b$');
  
  //post insert-ben
  Route::post('{slug}/users/page/{page_number}/insert-ben/{person_type_id}/user/{user_id}', ['before' =&gt; 'auth', 'as' =&gt; 'users.page.page_number.insert', 'uses' =&gt; 'PersonsController@insertBen'])-&gt;where('slug', '^\b(ir){0,1}(revocable){1}\b$');
  
  //post delete-ben
  Route::post('{slug}/users/page/{page_number}/delete-ben/{person_type_id}/user/{user_id}/person_id/{person_id}/address_id/{address_id}/ben_id/{ben_id}', ['before' =&gt; 'auth', 'as' =&gt; 'users.page.page_number.delete', 'uses' =&gt; 'PersonsController@deleteBen'])-&gt;where('slug', '^\b(ir){0,1}(revocable){1}\b$');
  
  //put update
  Route::put('{slug}/users/page/{page_number}/update', ['before' =&gt; 'auth', 'as' =&gt; 'users.page.page_number.update', 'uses' =&gt; 'PersonsController@update'])-&gt;where('slug', '^\b(ir){0,1}(revocable){1}\b$');
  
  //get upgrade page when user goes to a page like (page 17 or other pages like page 9 and 10 I think) reserved only for irrevocable registered plans. TODO: get the upgrade View model
  Route::get('{slug}/users/upgrade/{_meta}', [ 'as' =&gt; 'users.ugprade', 'uses' =&gt; 'PersonsController@upgrade' ] )-&gt;where('slug', '^\b(irrevocable){1}\b$');
  
  //Paypal post Paypal info to tables paypals, paypal_transactions, pricings and getPaypalBtn
  Route::put('paypal_transactions/{slug}/{page_number}/returnpaypalbtn', ['before' =&gt; 'auth', 'as' =&gt; 'paypal_transactions.returnpaypalbtn', 'uses' =&gt; 'PaypalTransactionsController@returnPaypalBtn'])-&gt;where('slug', '^\b(ir){0,1}(revocable){1}\b$');
  
  /** ------------------------------------------
   * Tests:
   * ------------------------------------------
   */
  Route::get('users/{username}/page', ['as' =&gt; 'users.page.test', 'uses' =&gt; 'UsersController@getPageTest']);
  Route::get('{slug}/users/show_sql', ['as' =&gt; 'users.page.show_sql', 'uses' =&gt; 'PersonsController@showSql'])-&gt;where('slug', '^\b(ir){0,1}(revocable){1}\b$');
  
  # Index Page - Last route, no matches
  Route::get('/', array('before' =&gt; 'detectLang', 'uses' =&gt; 'UsersController@login'));
  </code></pre>