count(10)->create(); $products = Product::factory() ->state(fn () => ['category_id' => $categories->random()->id]) ->count(104) ->create(); Order::factory()->count(50)->create()->each(function ($order) use ($products) { $orderProducts = $products->random(rand(1, 5)); foreach ($orderProducts as $product) { $quantity = rand(1, 5); $order->products()->attach($product->id, [ 'quantity' => $quantity, 'price' => $product->price, ]); } $order->update(['total' => $order->products->sum(fn ($p) => $p->pivot->quantity * $p->pivot->price)]); }); } }