title: Laravel Form::Model Binding - PUT/PATCH Update Routing not working
body: <p>I have routes set up to to create a person record as follows:</p>
  
  <pre><code>Route::get('bodymaker/create', 'BodyMakerController@create')-&gt;name('bodymaker.create');
  Route::post('bodymaker', 'BodyMakerController@store')-&gt;name('bodymaker.store');
  Route::get('bodymaker/{id}/edit', 'BodyMakerController@edit')-&gt;name('bodymaker.edit');
  Route::put('bodymaker/{id}/update', 'BodyMakerController@update')-&gt;name('bodymaker.update');
  Route::patch('bodymaker/{id}', 'BodyMakerController@update')-&gt;name('bodymaker.update');
  </code></pre>
  
  <p>The controller methods to generate a new record works properly and look like this:</p>
  
  <pre><code>public function create()
  {
      return View::make('bodymaker.create');
  }
  
  public function store(Request $request)
  {
      $person = new Person;
  
      $person-&gt;first_name = $request-&gt;first_name;
      $person-&gt;last_name = $request-&gt;last_name;
      $person-&gt;save();
  
      return View::make('person.store', ['person'=&gt;$person]);
  }
  </code></pre>
  
  <p>NOW... my problem is getting the edit/update form to bind properly...</p>
  
  <pre><code>public function edit($id)
  {
      $person = Person::findOrFail($id);
  
      return View::make('person.edit', ['person'=&gt;$person]);
  }
  
  public function update($id)  
  {
  // This route fails when I pass in the Request $request like in the store method. 
  //But how does the update method receive the form values differently than the store method(?)
      $person = Person::findOrFail($id);
  
      $person-&gt;first_name = $request-&gt;first_name;
      $person-&gt;last_name = $request-&gt;last_name;
      $person-&gt;save();
  
      return View::make('person.update', ['person'=&gt;$person]);
  }
  </code></pre>
  
  <p>The form for the update looks like this</p>
  
  <pre><code>{{ Form::model($person, ['route' =&gt; ['person.edit', $person-&gt;id], 'method' =&gt; 'PUT'] }}
  
          {{ csrf_field() }}
          {!!  Form::text('first_name'), Input::old('first_name')  !!}
          {!!  Form::text('last_name'), Input::old('last_name')  !!}
          {!! Form::submit('Update Person') !!}
  
  {!!  Form::close()  !!}
  </code></pre>
  
  <p>I can't seem to get the form to update the record, only been able to generate a new record.  Something about the syntax for the Form::model binding that I'm not understanding. The PUT request is failing when I pass in the Request as an argument so I don't understand the difference between POST &amp; PUT as used inside Laravel either, though I'm not sure that's my problem</p>
  
  <p>Here is my artisan route:list</p>
  
  <pre><code>| web,auth |||GET|HEAD| bodymaker/{id}/edit  | bodymaker.edit  | App\Http\Controllers\BodyMakerController@edit                             
  | web,auth |||PUT     | bodymaker/{id}/update| bodymaker.update| App\Http\Controllers\BodyMakerController@update  
  </code></pre>