<?php namespace Sma\Transaction\Workflow; use Exception; use Litepie\Workflow\Exceptions\WorkflowActionNotPerformedException; use Sma\Transaction\Models\Transaction; class TransactionAction { /** * Perform the complete action. * * @param Transaction $transaction * * @return Transaction */ public function complete(Transaction $transaction) { try { $transaction->status = 'complete'; return $transaction->save(); } catch (Exception $e) { throw new WorkflowActionNotPerformedException(); } } /** * Perform the verify action. * * @param Transaction $transaction * * @return Transaction */public function verify(Transaction $transaction) { try { $transaction->status = 'verify'; return $transaction->save(); } catch (Exception $e) { throw new WorkflowActionNotPerformedException(); } } /** * Perform the approve action. * * @param Transaction $transaction * * @return Transaction */public function approve(Transaction $transaction) { try { $transaction->status = 'approve'; return $transaction->save(); } catch (Exception $e) { throw new WorkflowActionNotPerformedException(); } } /** * Perform the publish action. * * @param Transaction $transaction * * @return Transaction */public function publish(Transaction $transaction) { try { $transaction->status = 'publish'; return $transaction->save(); } catch (Exception $e) { throw new WorkflowActionNotPerformedException(); } } /** * Perform the archive action. * * @param Transaction $transaction * * @return Transaction */ public function archive(Transaction $transaction) { try { $transaction->status = 'archive'; return $transaction->save(); } catch (Exception $e) { throw new WorkflowActionNotPerformedException(); } } /** * Perform the unpublish action. * * @param Transaction $transaction * * @return Transaction */ public function unpublish(Transaction $transaction) { try { $transaction->status = 'unpublish'; return $transaction->save(); } catch (Exception $e) { throw new WorkflowActionNotPerformedException(); } } }