title: MethodNotAllowedHttpException generated using return back()->withInput() in Laravel 5.4
body: <p>I've searched the forums and have seen many similar issues but none that seem to address my concern.  I believe this is different because:</p>
  
  <ol>
  <li>Form validation is not being used at this point</li>
  <li>The form method does not seem to be related (just 1 post action)</li>
  <li>The routes are not wrapped in web middleware</li>
  </ol>
  
  <p>Here's what the application is supposed to be doing:</p>
  
  <ol>
  <li>A user (with or without Authentication) views a public page with form (display_event)</li>
  <li>The user selects a specific ticket for ordering and is directed to a 2nd form (register_step1)</li>
  <li>The user then fills out demographic info for as many tickets as are being ordered</li>
  <li>The processing step, if the email address used is of a valid user (in DB) should return to the form in step 2 &amp; 3, populate the fields and flash a message.  Otherwise it would perform the save() actions required. (register_step2)</li>
  </ol>
  
  <p>The relevant routes from web.php are here:</p>
  
  <pre><code>    Route::get('/events/{event}', 'EventController@show')-&gt;name('display_event');
      Route::post('/register/{event}', 'RegistrationController@showRegForm')-&gt;name('register_step1');
      Route::post('/register/{event}/create', 'RegistrationController@store')-&gt;name('register_step2');
  </code></pre>
  
  <p>The relevant portions of the RegistrationController.php are here:</p>
  
  <pre><code>public function showRegForm (Request $request, $id) {
      // Registering for an event from /event/{id}
      $ticket        = Ticket::find(request()-&gt;input('ticketID'));
      $quantity      = request()-&gt;input('quantity');
      $discount_code = request()-&gt;input('discount_code');
      $event         = Event::find($ticket-&gt;eventID);
      return view('v1.public_pages.register', compact('ticket', 'event', 'quantity', 'discount_code'));
  }
  </code></pre>
  
  <p>And: </p>
  
  <pre><code>public function store (Request $request) {
  
      $event = Event::find(request()-&gt;input('eventID'));
      if(Auth::check()) {
          $this-&gt;currentPerson = Person::find(auth()-&gt;user()-&gt;id);
      }
  
      // set up a bunch of easy-reference variables from request()-&gt;input()
  
      $email = Email::where('emailADDR', $checkEmail)-&gt;first();
  
      if(!Auth::check() &amp;&amp; $email === null) {
          // Not logged in and email is not in database; must create
          $person               = new Person;
          // add person demographics from form
  
      } elseif(!Auth::check() &amp;&amp; $email !== null) {
          // Not logged in and email is in the database;
          // Should force a login -- return to form with input saved.
  
          flash("You have an account that we've created for you. 
                 Please attempt to login and we'll send you a password to your email address.", 'warning');
  
          return back()-&gt;withInput();
  
      } elseif(Auth::check() &amp;&amp; ($email-&gt;personID == $this-&gt;currentPerson-&gt;personID)) {
          // the email entered belongs to the person logged in; ergo in DB
          $person         = $this-&gt;currentPerson;
          // add person demographics from form
  
      } elseif(Auth::check() &amp;&amp; ($email-&gt;personID != $this-&gt;currentPerson-&gt;personID)) {
          // someone logged in is registering for someone else in the DB
          $person         = Person::find($email-&gt;personID);
          // add person demographics from form
  
      } else {
          // someone logged in is registering for someone else NOT in the DB
          $person               = new Person;
          // add person demographics from form
      }
  
      // do more stuff...
      $reg  = new Registration;  (set up a registration record)
  }
  </code></pre>