As of PHP 8.1, while `UnitEnum` & `BackedEnum` cannot be implemented by user-defined classes, it seems they can be extended by user-defined interfaces and eventually be implemented by enums.
<?php
interface TestEnumInterface extends \BackedEnum
{
    public function foo(): string;
}
enum TestEnum: string implements TestEnumInterface
{
    case CASE_1 = 'case 1';
    case CASE_2 = 'case 2';
    public function foo(): string
    {
        return 'bar';
    }
}
?>