checksIfTransactionBillNumberExists = $checksIfTransactionBillNumberExists; } /** * @param string $prefix * @return string */ public function execute(string $prefix): string { $date = carbon::now(); $billNumber = $prefix.$date->format('Y').$date->format('m').'-'.mt_rand(10000, 99999); return !$this->checksIfTransactionBillNumberExists->execute($billNumber) ? $billNumber : self::execute($prefix); } }