function process($saleId, $statusId) { $response = new ResponseEntity(); try { DB::transaction(function () use(&$response, $saleId, $statusId) { $sale = Sale::find($saleId); if ($sale) { $sp = new SaleProcessed(); $sp->qc_user_id = 1; $sp->sale_status_id = $statusId; $sp->user_id = $sale->user_id; $sp->product_id = $sale->product_id; $sp->customer_id = $sale->customer_id; $sp->date_sold = $sale->date_sold; $sp->order_number = $sale->order_number; $sp->ninety_days = $sale->ninety_days; $sp->remarks = $sale->remarks; $sp->entered_datetime = $sale->created_at; $ok = $sp->save(); if ($ok) { $deleted = Sale::destroy($saleId); if ($deleted) { $response->setSuccess(true); $response->setMessages(['Sale successfully processed!']); } else { $response->setMessages(['Failed to process sale!']); } } else { $response->setMessages(['Failed to process sale!']); } } else { $response->setMessages(['Sale not available']); } }); } catch (\Exception $ex) { $response->setMessages(['Exception: ' . $ex->getMessage()]); } return $response; }