/** * @return null * @throws Exception\TodoNotExpired */ public function unmarkAsExpired() { $status = TodoStatus::fromString(TodoStatus::OPEN); if (!$this->isMarkedAsExpired()) { throw Exception\TodoNotExpired::withDeadline($this->deadline, $this); } $this->recordThat(TodoWasUnmarkedAsExpired::fromStatus($this->todoId, $this->status, $status)); }