Files
maher 511fad8199
Build / run (push) Has been cancelled
Initial commit
2026-05-14 13:42:10 +02:00

32 lines
750 B
PHP
Executable File

<?php
namespace Common\Billing\Invoices;
use Common\Billing\Notifications\NewInvoiceAvailable;
use Common\Billing\Subscription;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
class CreateInvoice
{
public function execute(array $data): Invoice
{
$invoice = new Invoice([
'subscription_id' => $data['subscription_id'],
'paid' => $data['paid'],
'uuid' => $data['uuid'] ?? Str::random(10),
'notes' => Arr::get($data, 'notes'),
]);
$invoice->save();
if ($data['paid']) {
Subscription::find($data['subscription_id'])->user->notify(
new NewInvoiceAvailable($invoice),
);
}
return $invoice;
}
}