code: public function configure(Object $object): ConfigurationInterface
      {
          foreach ($this as $key => $value) {
              $method = 'set' . ucfirst($key);
              $property = lcfirst($key);
              $reflection = new \ReflectionClass($object);
  
              if ($reflection->hasMethod($method)) {
                  $reflectionMethod = $reflection->getMethod($method);
                  $reflectionMethod->setAccessible(true);
                  $reflectionMethod->invoke($object, $value);
                  continue;
              }
  
              if ($reflection->hasProperty($property) || isset($object->$property)) {
                  $reflectionProperty = $reflection->getProperty($property);
                  $reflectionProperty->setAccessible(true);
                  $reflectionProperty->setValue($object, $value);
              }
          }
  
          return $this;
      }
docs: {@inheritdoc}