You can extend a pretrained model with your own layers as much as you want. Something like this can work:
class BertCustomClassification(BertPreTrainedModel):
    def __init__(self, config):
        super().__init__(config)
        self.num_labels = config.num_labels

        self.bert = BertModel(config)
        # Add classifier layers below
        self.dropout = nn.Dropout(config.hidden_dropout_prob)
        self.preclassifier = nn.Linear(config.hidden_size, config.hidden_size)
        self.act = nn.GELU()
        self.classifier = nn.Linear(config.hidden_size, config.num_labels)

        # don't forget to init the weights for the new layers
        self.init_weights()

You should then also change the forward pass, of course.
Your question about other ML architectures like SVMs and decision trees is too broad for this forum and fall outside of the scope of HuggingFace Transformers. You can ask such question on a website like Stack Overflow (but search first because this question has been asked a billion times).