Managing communication between blueprints and managing resources, what's the best way?

Currently, the game has many things, there are 2 modes, build mode and play mode, which activate in certain phases of the game. During Play mode, you earn many sorts of resources over time and in Build mode, you spent them to create certain buildings etc.

The issue is that the Player Pawn holds a lot of the functionality and checks for which mode is enabled and creation while the level blueprint holds the resource and resource rate (as it’s level related) but both depend on each other making it a very messy process as I need to reference each on each blueprints and this could of course become quite an issue for performance (especially for a quest 2).

My question is, what is the best method of doing this so there can be 1 brain that handles it all?

I already tried creating a game manager blueprint which holds the functionality, but the level blueprint and player blueprint still need references and communication this way.
I also tried using blueprint interfaces, but I don’t think that is the answer to my issue.

Interfaces, EventListener and/or Actor Components.