code: func SendPayload(reqCtx reqContext.Context, payload *common.Payload, orderers []fab.Orderer) (*common.Block, error) {
  	if len(orderers) == 0 {
  		return nil, errors.New("orderers not set")
  	}
  
  	ctx, ok := context.RequestClientContext(reqCtx)
  	if !ok {
  		return nil, errors.New("failed get client context from reqContext for signPayload")
  	}
  	envelope, err := signPayload(ctx, payload)
  	if err != nil {
  		return nil, err
  	}
  
  	// Copy aside the ordering service endpoints
  	randOrderers := []fab.Orderer{}
  	randOrderers = append(randOrderers, orderers...)
  
  	// Iterate them in a random order and try broadcasting 1 by 1
  	var errResp error
  	for _, i := range rand.Perm(len(randOrderers)) {
  		resp, err := sendEnvelope(reqCtx, envelope, randOrderers[i])
  		if err != nil {
  			errResp = err
  		} else {
  			return resp, nil
  		}
  	}
  	return nil, errResp
  }
docs: // SendPayload sends the given payload to each orderer and returns a block response