cleanLineItem($item); } return $cleaned_items; } /** * Sets default values for the line_items. * @param $item * @return $this */ private function cleanLineItem($item) { $invoice_item = (object) get_class_vars(InvoiceItem::class); unset($invoice_item->casts); foreach ($invoice_item as $key => $value) { //if the key has not been set, we set it to a default value if (! array_key_exists($key, $item) || ! isset($item[$key])) { $item[$key] = $value; $item[$key] = BaseSettings::castAttribute(InvoiceItem::$casts[$key], $value); } else{ //always cast the value! $item[$key] = BaseSettings::castAttribute(InvoiceItem::$casts[$key], $item[$key]); } } if (array_key_exists('id', $item)) unset($item['id']); return $item; } }