/** * @param string $text * @param UserId $assigneeId * @param TodoId $todoId * @return Todo */ public static function post($text, UserId $assigneeId, TodoId $todoId) { $self = new self(); $self->assertText($text); $self->recordThat(TodoWasPosted::byUser($assigneeId, $text, $todoId, TodoStatus::open())); return $self; }