public function addProductItems(array $arrItems = [])
 {
     foreach ($arrItems as $itemData) {
         $item = new Item($itemData);
         $product = Product::find($itemData['product_id']);
         $item->product()->associate($product);
         /**
         |----------------------------------------------
         | There are two ways to add item to an invoice.
         | 1. $this->items()->save($item);
         | 2. $item->invoice()->associate($this);
         |    $item->save();
         |----------------------------------------------
         */
         $item->invoice()->associate($this);
         /***********************************************/
         if (!empty($itemData['id'])) {
             unset($itemData['id']);
         }
         $item->updateOrCreate(['product_id' => $product->id, 'invoice_id' => $this->id], $itemData);
     }
     return $this;
 }