docs: protected BindingResult<T> doConvert(Object value, ArgumentConversionContext<T> context) {
          Optional<T> result = conversionService.convert(value, context);
          if (result.isPresent() && context.getArgument().getType() == Optional.class) {
              return () -> (Optional<T>) result.get();
          }
          return () -> result;
      }