protected function submit(UploadedFile $file, $type, array $attributes)
    {
        switch ($type) {
            case 'image':
                return (new \Routegroup\Media\Upload\Image)->make($file, $attributes);

            case 'audio':
                return (new \Routegroup\Media\Upload\Audio)->make($file, $attributes);

            case 'video':
                return (new \Routegroup\Media\Upload\Video)->make($file, $attributes);

            case 'archive':
                return (new \Routegroup\Media\Upload\Archive)->make($file, $attributes);

            default:
                return (new \Routegroup\Media\Upload\File)->make($file, $attributes);
        }
    }