title: Laravel getDirty and getOriginal give same values on updating
body: <p>Using <code>Laravel 5.4</code></p>
  
  <p>I have a Job model which has a enum field on it with different statuses. These statuses change in many different places. I made a JobHistory model and migration which tracks those changes .</p>
  
  <p>On my <strong>Job model</strong> i define the new laravel 5.4 way of tracking eloquent events:</p>
  
  <pre><code>/**
   * The events that should be fired for eloquent actions
   *
   * @var array
   */
  protected $events = [
      'updating' =&gt; JobChangedStatus::class
  ];
  </code></pre>
  
  <p>Status changes are done like this:</p>
  
  <pre><code>/**
   * Change the job status
   *
   * @param $status
   */
  public function changeStatus($status)
  {
      $this-&gt;update([
          'status' =&gt; $status,
      ]);
  }
  </code></pre>
  
  <p><strong>EventServiceProvider:</strong></p>
  
  <pre><code>'App\Events\Jobs\JobChangedStatus' =&gt; [
    'App\Listeners\Jobs\CreateJobHistory',
  ],
  </code></pre>
  
  <p><strong>CreateJobHistory Listener:</strong></p>
  
  <pre><code>$job = $event-&gt;job;
  
  $jobHistory = new JobHistory();
  $jobHistory-&gt;old_status = $job-&gt;getOriginal('status');
  $jobHistory-&gt;new_status = $job-&gt;status;
  $jobHistory-&gt;job()-&gt;associate($job);
  $jobHistory-&gt;executor()-&gt;associate(Auth::user());
  $jobHistory-&gt;save();
  </code></pre>
  
  <p>When i change my job status from e.g <code>New</code> to <code>In_progress</code></p>
  
  <p>My JobHistory table will look like this:</p>
  
  <p><a href="https://i.stack.imgur.com/y6416.png" rel="noreferrer"><img src="https://i.stack.imgur.com/y6416.png" alt="enter image description here"></a></p>
  
  <p>So the new_status and the old_status both give the old value. I tried using <code>$job-&gt;getDirty()</code> but when i print it it just gives back a empty array.</p>
  
  <p>What am i doing wrong?</p>