I’ve created a lot of button sets over the years and using variants + base components is definitely the way to go! Here is my process:
Create a base component for each button size (e.g. “Large”) and icon placement (e.g. “Right Icon”), name it “Base” and turn it into a main component.
Add multiple instances of each base component and apply overrides to create unique types (e.g. “Secondary”) and states (e.g. “Hover”).
Turn every unique instance into a main component, select “combine as variants”, and rename variant properties & values.
Make bulk changes by editing the base components.
If you want some practice or a starting off point for your next project check out my (free) Button UI kit