Bus2reg receives req object from driver

Hi UVM forum.
I had a problem with mirror function in my test bench.
in my sequence I have the following code.

m_reg_block.m_ctrl_reg.write(status,8'h04);
m_reg_block.m_ctrl_reg.mirror(status,UVM_CHECK);

the simulator reported “read from DUT 0x0 does not match mirrored value 0x4”

In order to debug I added a print command for all received packets in the adapter bus2reg function.
And then I saw the problem.
After the monitor sent the collected packet via analysis port write function

item_collected.write(util_pkt);

some other object wrote the driver req object into reg2bus.
I know this because I printed all the packets from driver and monitor
and compered the packet id that was received in the reg2bus function to the packets id that was printed in the driver and monitor.
my question is who uses the bus2reg function with req as an input, and why?

In reply to shimonc:

It is up to ypu toanswer this question. What you face is caused by your implementation.

I found who else is using the adapter bus2reg method.
in uvm library file name “uvm_reg_map.svh” line 1952 the following command is activated

adapter.bus2reg(bus_req,rw_access)

this line is a result of running the command

seq_item_port.get_next_item(req);

from the driver
my question is, why the above code activates the adapter bus2reg method?