title: Laravel Job not seeing passed variables
body: <p>Laravel 7.2.2</p>
  <p>I am creating a job with Laravel inside an existing job. Firing the first job works fine, once it's fires the second job it crashed giving the following error:</p>
  <p><code>Too few arguments to function App\Jobs\CreateAlarm::__construct(), 0 passed in C:\xxx\Dispatchable.php on line 17 and exactly 3 expected in C:\xx\Jobs\CreateAlarm.php:29</code></p>
  <p>It's saying that I didn't pass any arguments while there are 3 expected. I'm using the following code to fire this job:</p>
  <pre><code>    class ProcessMeasurement implements ShouldQueue
  {
      use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  
      protected $sid;
  
      protected $val1;
  
      protected $val2;
  
      /**
       * Create a new job instance.
       *
       * @return void
       */
      public function __construct($sid, $val1, $val2)
      {
          $this-&gt;sid = $sid;
          $this-&gt;val1 = $val1;
          $this-&gt;val2 = $val2;
      }
  
      /**
       * Execute the job.
       *
       * @return void
       */
      public function handle()
      {
          $measurement = new Measurement;
          $measurement-&gt;sensor_id = $this-&gt;sid;
          $measurement-&gt;value_1 = $this-&gt;val1;
          $measurement-&gt;value_2 = $this-&gt;val2;
          $measurement-&gt;save();
          // Check for triggers
          $triggers = SensorTrigger::where('sensor_id', $this-&gt;sid)-&gt;get();
          foreach ($triggers as $trigger) {
              // check if alarm must be triggered
              if ($trigger-&gt;operator == '&gt;') {
                  // use &gt; operator
                  if ($trigger-&gt;affected_value == 1) {
                      // check value 1
                      if ($measurement-&gt;value_1 &gt; $trigger-&gt;operand) {
                          // trigger alarm
                          $job = (new CreateAlarm($this-&gt;sid, $trigger-&gt;id, Measurement::max('id')));
                          $job-&gt;dispatch();
                      }
                  }
                  if ($trigger-&gt;affected_value == 2) {
                      // check value 2
                      if ($measurement-&gt;value_2 &gt; $trigger-&gt;operand) {
                          // trigger alarm
                          $job = (new CreateAlarm($this-&gt;sid, $trigger-&gt;id, Measurement::max('id')));
                          $job-&gt;dispatch();
                      }
                  }
              }
              ...
              }
          }
      }
  }
  </code></pre>
  <p>I'm passing 3 variables in the job CreateAlarm: <code>$this-&gt;sid</code>, <code>$trigger-&gt;id</code> and <code>Measuerment::max('id')</code></p>
  <p>This is what the CreateAlarm looks like:</p>
  <pre><code>class CreateAlarm implements ShouldQueue
  {
      use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  
      protected $sid;
  
      protected $trigger_id;
  
      protected $measurement_id;
  
      /**
       * Create a new job instance.
       *
       * @return void
       */
      public function __construct($sid, $trigger_id, $measurement_id)
      {
          $this-&gt;sid = $sid;
          $this-&gt;trigger_id = $trigger_id;
          $this-&gt;measurement_id = $measurement_id;
      }
  
      /**
       * Execute the job.
       *
       * @return void
       */
      public function handle()
      {
          // Store alarm in database
          $alarm = new Alarm;
          $alarm-&gt;trigger_id = $this-&gt;trigger_id;
          $alarm-&gt;trigger_type = 'automatic';
          $alarm-&gt;measurement_id = $this-&gt;measurement_id;
          $alarm-&gt;organisation_id = Sensor::where('id', $this-&gt;sid)-&gt;organisation_id;
          $alarm-&gt;sensor_id = $this-&gt;sid;
  
          // check who to call
          $sensorContacts = SensorContact::where('sensor_id', $this-&gt;sid)-&gt;where('phone_priority', 0)-&gt;get();
          $alarm_id = Alarm::max('id');
          foreach ($sensorContacts as $sensorContact) {
              if ($sensorContact-&gt;phone_active == 1) {
                  // Create call job
                  $callJob = (new ProcessAlarmCall($sensorContact-&gt;contact_id, $alarm_id));
                  $callJob-&gt;dispatch();
              }
              if ($sensorContact-&gt;email_active == 1) {
                  // Create mail job
                  $mailJob = (new ProcessAlarMEmail($sensorContact-&gt;contact_id, $alarm_id));
                  $mailJob-&gt;dispatch();
              }
              if ($sensorContact-&gt;whatsapp_active == 1) {
                  // Create whatsapp job
                  $whatsappJob = (new ProcessAlarmWhatsapp($sensorContact-&gt;contact_id, $alarm_id));
                  $whatsappJob-&gt;dispatch();
              }
          }
      }
  }
  </code></pre>
  <p>I added every variable as <code>protected $var</code> and then constructed it in the __construct.</p>
  <p>I can't find what I did wrong and why the job fails</p>