Just so I am clear on this. You are asking for migration of windows from a VM to a physical PC (which VM is kinda irrelevant) which by the way might be a better term to use when you search google. If that is the case, there are lots of programs that do that like Dism(++) that can capture an image of any existing window partition and make it ready to be installed. For that matter, most backup software will actually do that too, for example, Macrium reflect. As you said, plenty of guides on the net for either case.
In my opinion, and talking about the procedure, I can't see any real benefit and actually might have some drawbacks. You may force for example a USB3 driver but you can't force an AMD or Nvidia driver, often you cant install mobo/chipset drivers, and other such things as those chips don't really exist inside a VM. VMs Emulate their own unique hardware and need their own unique drivers. Sure you can have some apps preinstalled but keep in mind that some apps check for hardware during setup and install/activate only the things that they can use. So in a VM for example you cant have full graphic acceleration (which is why you can't play games fully), or CUDA support, and so those options are going to be disabled and after the restore, you have to go to each application and reenable hardware support if they have any.
My point is, no matter what you will still have to check/install drivers after each restore, have to check apps for correct settings, etc, still, waste some time.
You can achieve the same and faster by making a clean install on your physical PC, install drivers, install the software you like to have, take an image of the physical PC which will include the proper drivers, apps, and settings. After you are done, capture that image and reinstall it when you need it.
To be honest, for those of us who manage servers and test machines, we often use the opposite procedure, and transfer a real PC to a VM for testing or using for multiple clients, VDI, and other such uses as often it's faster to install and set as we need on a physical PC and then convert that to a VM image for distribution. Once done with the installation, we clean the image from any drivers, pack, and deploy via a VHD (Virtual Hard Disk). The steps are more or less the same tho which is why I can say it's working fine
I assume you needed an opinion and not the exact steps. Exact steps can be found all over the net, which makes it kinda pointless to just copy-paste here.
Hope it helped.
Edit: Forgot to add that if driver installation is your goal, you can search about how to inject drivers in a windows Image