groupBy('id_jalan'); $data = []; foreach ($jalan as $j) { $id_jalan = $j->id; $kejadian = $groupedKecelakaan->get($id_jalan, collect()); $jumlah_aman = $kejadian->where('tingkat_kerawanan', 'Aman')->count(); $jumlah_rawan = $kejadian->where('tingkat_kerawanan', 'Rawan')->count(); $jumlah_sangat_rawan = $kejadian->where('tingkat_kerawanan', 'Sangat Rawan')->count(); $jumlah_status = [ 'Sangat Rawan' => $jumlah_sangat_rawan, 'Rawan' => $jumlah_rawan, 'Aman' => $jumlah_aman, ]; $max_value = max($jumlah_status); $status_kerawanan = array_search($max_value, $jumlah_status); $data[] = [ 'nama_jalan' => $j->nama_jalan, 'jumlah_aman' => $jumlah_aman, 'jumlah_rawan' => $jumlah_rawan, 'jumlah_sangat_rawan' => $jumlah_sangat_rawan, 'status_kerawanan' => $status_kerawanan ]; // Simpan ke database DaerahRawan::updateOrCreate( ['id_jalan' => $id_jalan], [ 'jumlah_aman' => $jumlah_aman, 'jumlah_rawan' => $jumlah_rawan, 'jumlah_sangat_rawan' => $jumlah_sangat_rawan, 'status_kerawanan' => $status_kerawanan ] ); } return view('dashboard.daerah_rawan.index', [ 'data' => $data, 'jalan' => $jalan, 'kecelakaan' => $kecelakaan ]); } }