Creates a non-strict filter, which eventually converts this to a
if the predicate is not satisfied.
Note: unlike filter, withFilter does not create a new Try.
Instead, it restricts the domain of subsequent
As Try is a one-element collection, this may be a bit overkill, but it's consistent with withFilter on Option and the other collections.