withDocumentOrThrow