public function getIndex()
 {
     return DB::transaction(function () {
         if (count(Cart::getContent()) != 0) {
             $sale = new Sale();
             $sale->client_id = Auth::user()->id;
             $sale->user_id = Auth::user()->id;
             $sale->branch_id = 1;
             $sale->save();
             $total = 0;
             foreach (Cart::getContent() as $cartProduct) {
                 /** @var Product $product */
                 $product = Product::findOrFail($cartProduct->id);
                 /** @var BranchProduct $branchProduct */
                 $branchProduct = $product->BranchProduct->first();
                 $sale->products()->attach($product->id, ['quantity' => $cartProduct->quantity, 'price' => $branchProduct->price]);
                 $total += $cartProduct->quantity * $branchProduct->price;
                 $pivot = $product->branches()->first()->pivot;
                 $pivot->stock -= $cartProduct->quantity;
                 $pivot->update();
             }
             $sale->total = $total;
             $sale->update();
             Cart::clear();
             return ['success' => true];
         } else {
             return ['success' => false];
         }
     });
 }
 public function postIndex(Request $request, $id, $quantity)
 {
     /** @var Product $product */
     $product = Product::findOrFail($id);
     $productInCart = Cart::get($id);
     /** @var BranchProduct $branchProduct */
     $branchProduct = $product->branchProduct->first();
     if ($productInCart) {
         $myquantity = $productInCart->quantity + $quantity;
     } else {
         $myquantity = $quantity;
     }
     if ($myquantity <= $branchProduct->stock) {
         Cart::add(['id' => $product->id, 'name' => $product->name, 'price' => $branchProduct->price, 'quantity' => $quantity, 'attributes' => []]);
         return ['success' => true];
     } else {
         return ['success' => false];
     }
 }