I ported mine in my backyard by eye with carbide burs and sanding rolls on a die grinder. I've done a bunch of 2, 4, and 6 cylinder BMW's and some 912 ports this way in the past and I get satisfaction from it because they all came out nice.
Here's the ones that are on my car now that I ported and they work great.
The valve guides were new so I put little pieces of rubber hose over them to protect them while grinding and sanding around them. The valve seats were also freshly reground so I put layers of tape all over them to protect them too.
I used 40mm CIS aluminum injector blocks and also port matched the 32mm holes in the original intake manifold to 40mm.
The first pic is when I first started opening the holes up from 32mm to around 39mm with a heavily fluted carbide bur that cut away aluminum quickly. You dip the carbide bur into a small container of WD40 every 2 or 3 minutes so the carbide bur doesn't load up with aluminum. If it does you have to pick it out with a machinist scribe. The liqued WD40 is in the small upside down black spray can cap in the picture.
Then switch to a finer burs to smooth things out more while taking them to around 39.8mm and then finish up with the sand paper cones to make them a smooth and nice port matched 40mm inside diameter.
You can get good sand paper cones at Harbor Freight tools but the steel arbors that come with them break quickly so I bought some good arbors in different lengths and the carbide burs from an online tool store.
You want a semi rough surface on the port walls like 80 grit sand paper would leave so the fine fuel mist in the port tumbles over the port wall surface as air flows through it and stays atomized as much as possible..