public static function log( \Throwable $throwable, LoggerInterface $instance, array $context = [] ): \Throwable {

    // extend data
    $context                = Collection::cast( $context, [] );
    $context[ 'exception' ] = $throwable;
    $context[ 'backtrace' ] = false;

    $severity  = $throwable instanceof Helper\ThrowableInterface ? $throwable->getSeverity() : Application::SEVERITY_CRITICAL;
    $namespace = get_class( $throwable ) . ':' . ( $throwable instanceof Helper\ThrowableInterface ? $throwable->getId() : $throwable->getCode() );
    $instance->create( $throwable->getMessage(), $context, $namespace, $severity );

    return $throwable;
  }