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