title: Laravel Dispatch method called from static method results in different Job Payload
body: <p>I have refactored some code so that 2 public function created within a Controller file, have been moved into a Model file and as public static.</p>
  <p>The following method is called from within a Controller:</p>
  <p><code>public static function moveItem(Transactin $transaction)</code></p>
  <p>and <code>self::confirmPayment($order)</code> is called within this method which calls:</p>
  <p><code>private static function confirmPayment(Order $order)</code></p>
  <p>Within this method a mailable is created and dispatched via <code>SendPaymentConfirmation::dispatch($mailable, $order)</code></p>
  <p>The construct of the Job Class is as follows:</p>
  <pre><code>public function __construct(OrderPaid $mailable, Order $order)
  {
      $this-&gt;mailable = $mailable;
      $this-&gt;order = $order;
  }
  </code></pre>
  <p>The code was working fine before moving it to static methods. This is from the working <code>jobs.payload</code>:</p>
  <pre><code>O:45:\&quot;Illuminate\\Contracts\\Database\\ModelIdentifier\&quot;:4:{
    s:5:\&quot;class\&quot;;
    s:9:\&quot;App\\Order\&quot;;
    s:2:\&quot;id\&quot;;i:123456;
    s:9:\&quot;relations\&quot;;a:5:{i:0;
    s:8:\&quot;payments\&quot;;i:1;
    s:21:\&quot;payments.transactions\&quot;;i:2;
    s:14:\&quot;customisations\&quot;;i:3;
    s:8:\&quot;user\&quot;;i:4;
    s:7:\&quot;creator\&quot;;}
  </code></pre>
  <p>Different payload that is saved after calling via the static methods:</p>
  <pre><code>O:45:\&quot;Illuminate\\Contracts\\Database\\ModelIdentifier\&quot;:4:{
    s:5:\&quot;class\&quot;;
    s:9:\&quot;App\\Order\&quot;;
    s:2:\&quot;id\&quot;;i:123456;
    s:9:\&quot;relations\&quot;;a:11:{i:0;
    s:8:\&quot;payments\&quot;;i:1;
    s:21:\&quot;payments.transactions\&quot;;i:2;
    s:5:\&quot;items\&quot;;i:3;
    s:19:\&quot;items.customisation\&quot;;i:5;
    s:14:\&quot;customisations\&quot;;i:8;
    s:8:\&quot;user\&quot;;i:10;
    s:7:\&quot;creator\&quot;;}
  </code></pre>
  <p>As you can see, it has added a number of additional relations. These are valid but strange that it is adding more. When the queue is run, Laravel returns the following error:</p>
  <pre><code>local.ERROR: Call to a member function customisation() on null
  [object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Call to a member function customisation() on null at /home/vagrant/code/test/app/Models/Order/Item.php:44)
  </code></pre>
  <p>I changed the constuct of the Job to use withoutRelations but still getting the error:</p>
  <pre><code>public function __construct(OrderPaid $mailable, Order $order)
  {
      $this-&gt;mailable = $mailable;
      $this-&gt;order = $order-&gt;withoutRelations();
  }
  </code></pre>
  <p>Is there a reason why the relations would be different when called via non-static vs static method?</p>