code: public static function create(array $config): Asset
      {
          $config = self::migrateConfig($config);
  
          self::validateConfig($config);
  
          $location = $config['location'] ?? Asset::FRONTEND;
          $handle = $config['handle'];
          $url = $config['url'];
          $class = (string) $config['type'];
  
          $asset = new $class($handle, $url, $location, $config);
  
          if (! $asset instanceof Asset) {
              throw new Exception\InvalidArgumentException(
                  sprintf(
                      'The given class "%s" is not implementing %s',
                      $class,
                      Asset::class
                  )
              );
          }
  
          return $asset;
      }
docs: @param array $config
  
  @return Asset
  @throws Exception\MissingArgumentException
  @throws Exception\InvalidArgumentException