40 lines
1.3 KiB
PHP
40 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Services\Finance;
|
|
|
|
use App\Models\BankVerification;
|
|
use App\Models\User;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class BankVerificationService
|
|
{
|
|
/**
|
|
* @param array{status: string, finance_note?: string|null} $data
|
|
*/
|
|
public function update(BankVerification $verification, User $actor, array $data): BankVerification
|
|
{
|
|
return DB::transaction(function () use ($verification, $actor, $data): BankVerification {
|
|
$before = $verification->only(['status', 'finance_note', 'verified_by_user_id', 'verified_at']);
|
|
|
|
$verification->forceFill([
|
|
'status' => $data['status'],
|
|
'finance_note' => $data['finance_note'] ?? null,
|
|
'verified_by_user_id' => $actor->id,
|
|
'verified_at' => now(),
|
|
])->save();
|
|
|
|
activity('finance')
|
|
->performedOn($verification)
|
|
->causedBy($actor)
|
|
->withProperties([
|
|
'before' => $before,
|
|
'after' => $verification->only(['status', 'finance_note', 'verified_by_user_id', 'verified_at']),
|
|
'application_id' => $verification->application_id,
|
|
])
|
|
->log('bank_verification_updated');
|
|
|
|
return $verification;
|
|
});
|
|
}
|
|
}
|