laravel check if model attribute changed code example

Example 1: show user only those product which he hasn't buyed laravel eloquest

$user_id = auth()->user()->id;

Product::where('status', 'active')
  ->whereNotIn('id', function($query) use ($user_id) {
    $query->select('product_id')->from(new OrderProduct->getTable())
      ->where('user_id', $user_id)->where('status', 'delivered')
		->pluck('product_id')->toArray();
  });

Example 2: laravel update only changed fields

protected function performUpdate(Builder $query, array $options = [])
{
    $dirty = $this->getDirty();

    if (count($dirty) > 0)
    {
        // runs update query
    }

    return true;
}