title: Laravel: Too few arguments to function 0 passed and exactly 1 expected"
body: <p>I know this has been asked before. ive seen the questions and answers but cant find something that I can get help from.</p>
  
  <p>I am trying to pass simple data into my database. so far so good. 
  I believe my problem arises when I try to add the userID since it has to be pulled from Auth. so here is my controller code.</p>
  
  <p>side node , userID is from a foreign table called users. and userID will be used as a foreign key. in the userstable its called "id"</p>
  
  <pre><code>    &lt;?php
  
  namespace App\Http\Controllers;
  
  use Illuminate\Http\Request;
  
  class ShopController extends Controller
  {
      /**
       * Create a new controller instance.
       *
       * @return void
       */
      public function __construct()
      {
          $this-&gt;middleware('auth');
      }
  
      public function index()
      {
          return view('/shop/addShop');
      }
  
  
      protected function validator(array $data)
      {
          return Validator::make($data, [
              'userid' =&gt; ['required', 'string', 'max:255'],
              'shopname' =&gt; ['required', 'string', 'max:255'],
              'address' =&gt; ['required', 'string', 'max:255'],
              'postal' =&gt; ['required', 'string', 'max:255'],
              'city' =&gt; ['required', 'string', 'max:255'],
              'phone' =&gt; ['required', 'string', 'max:255'],
          ]);
      }
  
      /**
       * Add Users shop  after a validation check.
       *
       * @param  array  $data
       * @return \App\
       */
      protected function create(array $data)
      {
          $userId = Auth::id();
          return User::create([
              'userid'=&gt; $data[$userId],
              'shopname' =&gt; $data['shopname'],
              'address' =&gt; $data['address'],
              'postal' =&gt; $data['postal'],
              'city' =&gt; $data['city'],
              'phone' =&gt; $data['phone'],
  
          ]);
      }
  }
  </code></pre>
  
  <p>and right here you can see my route.</p>
  
  <pre><code>&lt;?php 
  
  Route::get('/', function () {
      return view('welcome');
  });
  
  Auth::routes();
  
  Route::get('/home', 'HomeController@index')-&gt;name('home');
  Route::post('/addShop', 'ShopController@create')-&gt;name('addShop');
  Route::get('/addShop', 'ShopController@index')-&gt;name('addShop');
  </code></pre>