If you want lazy loading to not be lazy, then add a ! to the `let`, if you want it to happen at a specific point, then use `def provider` rather than `let(:provider)` since `let` is lazy and cached, which means there isn't a very clear definition of when it's supposed to be running. `let` and `subject` are generally only supposed to be used for "nouns" rather than "verbs" because of this. For behavior which makes a change that you want to test a side effect of, just make a method with def.

It can be nice to cut corners on this for subject sometime to get the nice syntactic sugar that comes along with subject, but the only difference between a method and let are things that are unhelpful for side effect actions.