Ok so I figured this out, entirely my lack of Virtualmin knowledge…
First I reverted my nginx changes back to the default path Virtualmin creates
root /home/domain.com/public_html;
Then go to Web Configuration → Website Options → Website documents sub-directory = public_html/public
SSL renewal works as expected. Laravel application works as expected. Virtualmin is awesome!
– Craig