In reply to MICRO_91:
A const ref argument is a guarantee to the caller that you will not modify the actual argument passed to the function. You cannot modify the actual argument of an input to a function because it’s copied upon calling the function and not copied when it returns.
This would not help you if even if it were legal because the argument is only a handle to the transaction. With const ref, you cannot modify the handle, but you can still write to object members that handle references.
In UVM, we use the MO-COW principle - Manual Object Clone On Write.