create(); Sales::factory(5)->create(); Item::factory(500)->create(); // 75% peluang item masuk nampan, sisanya di brankas $nampans = Nampan::all()->pluck('id')->toArray(); $jumlahNampan = count($nampans); $counter = 0; foreach (Item::all() as $item) { if (rand(1, 100) <= 75) { $item->update([ 'id_nampan' => $nampans[$counter % $jumlahNampan], ]); $counter++; } } Transaksi::factory(250)->create()->each(function ($transaksi) { $jumlah_item = rand(1, 2); $items = Item::with('produk')->inRandomOrder()->limit($jumlah_item)->get(); if ($items->isEmpty()) return; $total_harga = $transaksi->total_harga; foreach ($items as $item) { $transaksi->itemTransaksi()->create([ 'id_produk' => $item->produk->id, 'harga_deal' => $item->produk->harga_jual, 'posisi_asal' => $item->id_nampan ? $item->nampan->nama : 'Brankas', ]); $item->delete(); $total_harga += $item->produk->harga_jual; } $transaksi->update(['total_harga' => $total_harga]); }); } }