public function store(Request $request)
 {
     $invoiceModel = new Invoice();
     $rules = $invoiceModel->getValidatorRules();
     $validator = $this->validate($request, $rules);
     if ($validator) {
         return response()->json($validator, '404');
     }
     /**
     |-----------------------------------------------------
     | Create a invoice
     |-----------------------------------------------------
     */
     $invoice = $invoiceModel->create($request->all());
     /**
     |-----------------------------------------------------
     | Add customer to invoice
     |-----------------------------------------------------
     */
     $customer_id = $request->get('customer')['id'];
     $customer = Customer::find($customer_id);
     $invoice->updateCustomerWithShippingAddress($customer);
     /**
     |-----------------------------------------------------
     | Update saler
     |-----------------------------------------------------
     */
     $invoice->updateSaler(Auth::user());
     /**
     |-----------------------------------------------------
     | Add list products to invoice
     |-----------------------------------------------------
     */
     $invoice->addProductItems($request->get('items'));
     /**
     |-----------------------------------------------------
     | Save to Db
     |-----------------------------------------------------
     */
     $invoice->save();
     redirect()->route('sale.invoice.show', [$invoice], 302);
 }