docs: @SuppressWarnings("unchecked")
  	@Override
  	public Object handle(ProceedingJoinPoint proceedingJoinPoint, RateLimiter rateLimiter, String methodName) throws Throwable {
  		Object returnValue = proceedingJoinPoint.proceed();
  		if (Flux.class.isAssignableFrom(returnValue.getClass())) {
  			Flux<?> fluxReturnValue = (Flux<?>) returnValue;
  			return fluxReturnValue.transform(RateLimiterOperator.of(rateLimiter, Schedulers.immediate()));
  		} else if (Mono.class.isAssignableFrom(returnValue.getClass())) {
  			Mono<?> monoReturnValue = (Mono<?>) returnValue;
  			return monoReturnValue.transform(RateLimiterOperator.of(rateLimiter, Schedulers.immediate()));
  		} else {
  			logger.error("Unsupported type for Reactor rateLimiter {}", returnValue.getClass().getTypeName());
  			throw new IllegalArgumentException("Not Supported type for the rateLimiter in Reactor :" + returnValue.getClass().getName());
  
  		}
  	}