public function decide(Request $request, Order $order)
 {
     /** @var OrderRevision $orderRevision */
     if (!($orderRevision = $this->orderManager->getOrderRevisionRepository()->whereOrder($order)->first())) {
         return $this->error(OrderRevision::CAN_NOT_FIND);
     }
     $this->authorize('decide', $orderRevision);
     $approved = $request->input('approved') ?: false;
     // If rejected mark the revision as not approved and be done.
     if (!$approved) {
         $orderRevision->setApproved(false);
         $this->orderManager->getOrderRevisionRepository()->save($orderRevision);
         return $this->success('action');
     }
     // If accepted mark the revision as approved and update the order details.
     DB::transaction(function () use($order, $orderRevision, $approved) {
         $orderRevision->setApproved();
         $this->orderManager->getOrderRevisionRepository()->save($orderRevision);
         $this->orderManager->getOrderRepository()->update($order, $orderRevision->getChangesArray());
         event(new OrderRevisionEvent($orderRevision));
     });
     return $this->success('edit');
 }