singletonIf(static::class); $staticInstance = give(static::class); // Make sure the accessed class is a singleton and get instance $accessorClass = $staticInstance->getFacadeAccessor(); give()->singletonIf($accessorClass); $accessorInstance = give($accessorClass); return $accessorInstance->$name(...$arguments); } /** * Retrieves the fully qualified class name or alias for the class being decorated * * @since 2.12.0 * * @return string */ abstract protected function getFacadeAccessor(); }