Reusable Money System?

Hi there, I wanted to create a money system where money is given to the player everytime an objective has been completed such as killing an enemy, completing a quest, descovering a new area and more. I also want a widget to popup everytime an objective has been completed showing the amount of money that has been given to the player.

Currently my player state handles adding and subtracting the money however I do not know how I can have multiple blueprint actors use the same blueprint/code to effect this system. What would be the best approach to do this modularly so that everything can use one system without duplicate blueprint?

Thank you in advance

ActorComponents or interfaces would both work well for this