isEmpty()) { $this->fail("Tidak ada data alternatif dalam database."); } $submissions = []; foreach ($mahasiswa as [$name, $nim, $tahun]) { $user = User::where('email', strtolower($nim) . '@student.polije.ac.id')->first(); if (!$user) { Log::warning("Mahasiswa dengan NIM {$nim} tidak ditemukan."); continue; } $submission = Submissions::factory()->create(['id' => $user->id]); $submissions[] = $submission; } foreach ($submissions as $submission) { $chosenAlternatifs = $alternatifs->shuffle()->take(1)->pluck('id_alternatif'); foreach ($chosenAlternatifs as $id_alternatif) { SubmissionDetail::factory()->create([ 'id_submission' => $submission->id_submission, 'id_alternatif' => $id_alternatif, ]); } } $processedSubmissions = []; foreach ($submissions as $submission) { if (in_array($submission->id_submission, $processedSubmissions)) { Log::warning("Skipping duplicate dispatch for Submission ID: {$submission->id_submission}"); continue; } $chosenAlternatifs = SubmissionDetail::where('id_submission', $submission->id_submission) ->pluck('id_alternatif') ->toArray(); if (count($chosenAlternatifs) === 1) { // Log::info("Dispatching event for Submission ID: {$submission->id_submission}"); // Log::info("Alternatif terpilih untuk angkatan {$submission->angkatan}: " . json_encode($chosenAlternatifs)); // event(new SubmissionCreated($submission)); $processedSubmissions[] = $submission->id_submission; } else { Log::warning("Skipping event for Submission ID: {$submission->id_submission}, expected 1 alternatives but got " . count($chosenAlternatifs)); } } $this->assertTrue(true); } }