<?php
Statamic::booted(function () {
    foreach (app()['files']->files(app_path('Values')) as $file) {
        $class = $file->getBasename('.php');
        $fqcn = $this->app->getNamespace()."Values\\{$class}";
        if (is_subclass_of($fqcn, Values::class)) {
            $object = app($fqcn);
            $collections = $fqcn::$collections;
            $fields = Arr::except(get_class_methods($object), '__construct');
            foreach ($collections as $collection) {
                foreach ($fields as $field) {
                    Collection::computed(
                        $collection,
                        $field,
                        fn ($entry, $value) => $object->$field($entry, $value)
                    );
                }
            }
        }
    }
});