Database transactions:
Basic Transaction
DB::transaction(function () {
User::create(['name' => 'John']);
Order::create(['user_id' => 1]);
});Manual Transaction
DB::beginTransaction();
try {
User::create([...]);
Order::create([...]);
DB::commit();
} catch (Exception $e) {
DB::rollBack();
throw $e;
}Retry on Deadlock
DB::transaction(function () {
// ...
}, 5); // Retry 5 timesNested Transactions
DB::transaction(function () {
DB::transaction(function () {
// Savepoint created
});
});