How would I change the color of a brick based on a players money?

I am working on making a tycoon game, and the purchasable upgrades are represented by buttons on the floor. What I hope to achieve is making the buttons turn red when the player cant afford them, and turn green when they can, in the most efficient way possible. I have a few possible solutions, such as just having a while loop that checks every button on a 1 second timer or something, but I feel like there has to be a more efficient way. Apologies if something similar has been asked recently, I couldn’t find it if so. Anyway, in summary, what is the best practice when it comes to updating properties based on a number value?

I would say use the changed event and then update the buttons to the color based off the player’s money.

numberValue.Changed:Connect(function(newValue) -- newValue is the new value of the numberValue
    -- Change color of buttons
end)

I thought about that, but I am worried it could cause lag if its refreshing potentially hundreds of times per second. perhaps I add a debounce that limits it to refreshing twice per second or something? But thanks, ill see what I can do with that