$value) { $key = Str::camel($key); $this->$key = $value; } } public function __isset(string $name): bool { return isset($this->extraSettings[$name]); } public function __get(string $name) { if (array_key_exists($name, $this->extraSettings)) { return $this->extraSettings[$name]; } throw new OutOfRangeException(sprintf('Property %s does not exist', $name)); } public function __set(string $name, $value): void { $this->extraSettings[$name] = $value; } }