If you have a DB transaction and want to return its result, there are at least two ways, see the example.
// 1. You can pass the parameter by reference$invoice = NULL;DB::transaction(function () use (&$invoice) {    $invoice = Invoice::create(...);    $invoice->items()->attach(...);}) // 2. Or shorter: just return trasaction result$invoice = DB::transaction(function () {    $invoice = Invoice::create(...);    $invoice->items()->attach(...);     return $invoice;});