I have this code-snippet:
$invoiceNumber = InvoiceNumbers::where('vendor', $request->user()->vendorId)->orderByDesc('invoice_number')->limit(1)->first();
$invoiceNumber ? $newInvoiceNumber = $invoiceNumber->invoice_number++ : $newInvoiceNumber = 1;
$invoiceNumber = InvoiceNumbers::create(['invoice_number' => $newInvoiceNumber, 'vendor' => $request->user()->vendorId]);
Unfortunately sometimes, when the scripts runs two times parallel the same invoice number would be created in two entries - Is there an option how I can prevent this? Like with table locks or something like this?
Thanks in advance!