UVM Environment for credit interface

Dear Forum,
I need some guidance on developing a UVM env for a specific use case.
I have an address & data interface to perform memory writes, I have an UVM-ENV to generate the sequences for this.
Along with this, there is another credit interface, how many Write commands I am allowed to perform is dependent on this interface, I have to query if we have enough credits to send the memory write sequence. Sometimes I might get more credits, and if I have excess credits, I can use that for next request. If I have to maintain these credits in the UVM infrastructure where is the best place to maintain this?

Also, I am planning to develop to UVM-UVCs separately for Data-Writes & Credit-Checks, and calling the credit-check task in the virtual-sequence before calling the data-write sequence, is this the recommended way? If there are any other best practices, can you please recommend.

Thanks