service->create($request->validated()); } catch (\RuntimeException $e) { $message = match ($e->getMessage()) { 'draw_no_exists' => trans('api.draw_no_exists'), 'draw_timeline_invalid' => trans('api.draw_timeline_invalid'), default => trans('api.client_error'), }; return ApiResponse::error($message, ErrorCode::ClientHttpError->value, ['reason' => $e->getMessage()], 409); } return ApiResponse::success([ 'id' => (int) $draw->id, 'draw_no' => $draw->draw_no, 'business_date' => (string) $draw->business_date, 'sequence_no' => (int) $draw->sequence_no, 'status' => $draw->status, 'start_time' => $draw->start_time?->toIso8601String(), 'close_time' => $draw->close_time?->toIso8601String(), 'draw_time' => $draw->draw_time?->toIso8601String(), ])->setStatusCode(201); } }