code: func (m *GormCommentRepository) Save(ctx context.Context, comment *Comment, modifierID uuid.UUID) error {
  	c := Comment{}
  	tx := m.db.Where("id=?", comment.ID).First(&c)
  	if tx.RecordNotFound() {
  		log.Error(ctx, map[string]interface{}{
  			"comment_id": comment.ID,
  		}, "comment not found!")
  		// treating this as a not found error: the fact that we're using number internal is implementation detail
  		return errors.NewNotFoundError("comment", comment.ID.String())
  	}
  	if err := tx.Error; err != nil {
  		log.Error(ctx, map[string]interface{}{
  			"comment_id": comment.ID,
  			"err":        err,
  		}, "comment search operation failed!")
  
  		return errors.NewInternalError(ctx, err)
  	}
  	// make sure no comment is created with an empty 'markup' value
  	if comment.Markup == "" {
  		comment.Markup = rendering.SystemMarkupDefault
  	}
  	tx = tx.Save(comment)
  	if err := tx.Error; err != nil {
  		log.Error(ctx, map[string]interface{}{
  			"comment_id": comment.ID,
  			"err":        err,
  		}, "unable to save the comment!")
  
  		return errors.NewInternalError(ctx, err)
  	}
  	// save a revision of the updated comment
  	if err := m.revisionRepository.Create(ctx, modifierID, RevisionTypeUpdate, *comment); err != nil {
  		return errs.Wrapf(err, "error while saving work item")
  	}
  	log.Debug(ctx, map[string]interface{}{
  		"comment_id": comment.ID,
  	}, "Comment updated!")
  
  	return nil
  }
docs: // Save a single comment