eventFor($token); $this->actions->ack($event); return response()->json(['state' => $event->fresh()->state->value]); } public function done(string $token): JsonResponse { $event = $this->eventFor($token); $this->actions->done($event); return response()->json(['state' => $event->fresh()->state->value]); } private function eventFor(string $token): Event { $delivery = Delivery::where('action_token', $token)->with('event.user')->first(); abort_if($delivery === null, 404, 'Неизвестный токен'); abort_if($delivery->event->isTerminal(), 410, 'Событие уже закрыто'); return $delivery->event; } }