You will be looking at creating a service that creates the site collection for you.


So this could be a Flow that calls the admin.asmx or a function app or anything really. Then you could even implement something that applies a pnp template assuming that you don't want to use the out of the box templates.


I'm currently working on a project where the customer creates a site request in SP2016 (on-premises SharePoint so I don't have the option of Flow) Then SharePoint Designer calls a webservice that then calls admin.asmx


So your button could for example use the pnp js libraries to create a list item, this then triggers the Flow that calls admin.asmx.