public static function forNonCallable(
        string $name = null,
        int $code = self::CODE_FOR_NON_CALLABLE,
        Throwable $previous = null
    ): self {
        $message = self::DEFAULT_MESSAGE;

        if (null !== $name) {
            $message .= sprintf(
                self::MESSAGE_EXTENSION_NAME_FORMAT,
                $name
            );
        }

        $message .= self::MESSAGE_EXTENSION_FOR_NON_CALLABLE;

        return new static($message, $code, $previous);
    }