where('audition_id', $audition->id)->update(['draw_number' => null]); $randomizedEntries = $audition->entries->shuffle(); foreach ($randomizedEntries as $index => $entry) { $entry->draw_number = $index + 1; $entry->save(); } $audition->addFlag('drawn'); } public function runDrawsOnCollection($auditions): void { $auditions->each(fn ($audition) => $this->runOneDraw($audition)); } public function checkCollectionForDrawnAuditions($auditions): bool { $auditions->loadMissing('flags'); return $auditions->contains(fn ($audition) => $audition->hasFlag('drawn')); } }