code: func (e *Empire) Destroy(ctx context.Context, opts DestroyOpts) error {
  	if err := opts.Validate(e); err != nil {
  		return err
  	}
  
  	tx := e.db.Begin()
  
  	if err := e.apps.Destroy(ctx, tx, opts.App); err != nil {
  		tx.Rollback()
  		return err
  	}
  
  	if err := tx.Commit().Error; err != nil {
  		return err
  	}
  
  	return e.PublishEvent(opts.Event())
  }
docs: // Destroy destroys an app.