Create a class Tree. Give it a mesh, and few variables:
maxChops
logsToGive
Make a function OnHit() override and track how many times the tree has been chopped. if it has been chopped as much as maxChops call a new function DropLogsAndDestroy() where you will spawn few logs or directly give them to the player inventory.
As for the respawning, you can run a timer on Destroy() for 90 seconds (or as much as you want) and show it again refreshed and ready to be chopped again.