APL (Dyalog), 2 bytes
⍣=
NB: I define O←⍣= in the the input section due to a bug in that derived monadic operators can't be defined in the way that TIO likes to define things.
⍣ Is an operator that can be used like (function⍣condition) ⍵
It applies the function, f, to ⍵ until (f ⍵) condition ⍵ returns true. Therefore
⍣= is a derived monadic operator that takes a monadic function, f, as its left argument and applies it to its right argument, ⍵, until f ⍵ = ⍵