fetchesTransaction = $fetchesTransaction; $this->updatesTransactionStatus = $updatesTransactionStatus; $this->updatesWallet = $updatesWallet; } /** * @param Booking $booking * @return void * @throws \App\Classes\Exceptions\MalformedRequestException */ public function execute(int $transactionId, int $transactionStatus) { $transaction = $this->fetchesTransaction->execute(['id' => $transactionId]); $wallet = $transaction->wallet; $walletOject = new WalletObject( $wallet->company->id, $wallet->currency_id, $wallet->code, $transaction->amount); $this->updatesTransactionStatus->execute($transaction, $transactionStatus); $this->updatesWallet->execute($wallet, $walletOject); return $wallet; } }