isTerminal()) { return; } $user = $event->user; $now = $user->now(); $event->quiet_until = $this->quiet->afterAck($event, $user, $event->state, $this->due->resolve($event, $user), $now); $event->save(); } /** «Сделано»: закрыть событие целиком. */ public function done(Event $event): void { if ($event->isTerminal()) { return; } $event->state = EventState::Done; $event->done_at = now(); $event->save(); foreach ($event->deliveries()->with('channel')->get() as $delivery) { $this->channels->for($delivery->channel->type)->onDone($event, $delivery); } } }