public function nominate(User $user)
{
if (!$this->isPending()) {
return false;
}
DB::transaction(function () use($user) {
$nomination = $this->recentEvents()->nominations()->where('user_id', $user->user_id);
if (!$nomination->exists()) {
$this->events()->create(['type' => BeatmapsetEvent::NOMINATE, 'user_id' => $user->user_id]);
if ($this->currentNominationCount() >= $this->requiredNominationCount()) {
$this->qualify();
}
}
});
return true;
}