How to create multiple editor?

As already mentioned you should use custom metaboxes for this.

You can create these metaboxes with a plugin like ACF or code them yourself.

Your scenario/setup it would suit best to create a repeatable metabox with a custom WYSIWYG editor field inside.
So that you could create a different number of fields for each post.

If you want to use/build something like this I would also recommend an existing plugin!
To build it yourself you will need a good knowledge of JS atleast.

Also as WP uses tinyMCE, which uses an iframe, you will hit some browser limitations, and need to find some workarounds.

If you want to go that route, you could read this Core-Ticket for starting.
A patch was already comitted for this, so when this gets included in core, it should be “simpler” to create repeatable/sortable WYSIWIG editors.
https://core.trac.wordpress.org/ticket/19173

So the simplest solution would be to create multiple static metaboxes for your packages post-type.
(or one metabox with multiple editors.)

With the following code, you can create one(1) single new metabox with an editor.
You can adapt the code to display more metaboxes:

add_action('admin_init', 'prfx_add_meta_box', 1);
function prfx_add_meta_box() {

    // add one new metabox on the 'packages' edit screen
    add_meta_box( 
        'prfx_first-metabox', // ID of the metabox
        'My First Editor', // title of the metabox
        'prfx_metabox_callback', // callback function, see below
        'packages', // <--- your post-type slug
        'normal', // context
        'default' // priority
    );
}

With this function we can add a new metabox to the packages posttype.

Codex link:
https://developer.wordpress.org/reference/functions/add_meta_box/

To create a new instance of the tinyMCE editor that WP uses, you can use the wp_editor function.
This function will create a new editor for you, so you just need to specific some arguments.

Codex link:
https://codex.wordpress.org/Function_Reference/wp_editor

function prfx_metabox_callback() {
    global $post;

    // get value of our custom field
    $first_field = get_post_meta($post->ID, 'my-first-field-name', true);

    // create a nonce for secure saving
    wp_nonce_field( 'prfx_first_nonce', 'prfx_first_nonce' );

    // check if our custom field has content
    if( $first_field ) {
        // if it has content, set the $content so we can display it as value in the field
        $content = $first_field;
    } else {
        // if it has no content, just return an empty value
        $content="";
    }

    // create a new instance of the WYSIWYG editor
    wp_editor( $content, 'first_custom_editor' , array(
        'wpautop'       => true,
        'textarea_name' => 'my-first-field-name', // this is the 'name' attribute of our field
        'textarea_rows' => 10,
    ) ); 

}

Than you also need to add a save function to save the content which you will enter in the new custom editor.

Codex link:
https://codex.wordpress.org/Function_Reference/update_post_meta

add_action('save_post', 'prfx_save_meta_box');
function prfx_save_meta_box($post_id) {

    // check our nonce
    if ( ! isset( $_POST['prfx_first_nonce'] ) ||
    ! wp_verify_nonce( $_POST['prfx_first_nonce'], 'prfx_first_nonce' ) )
        return;

    // check for autosave
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
        return;

    // check if user has rights
    if (!current_user_can('edit_post', $post_id))
        return;

    // check if content exists in our custom field
    if ( isset( $_POST['my-first-field-name'] ) ) {
        $contents = $_POST['my-first-field-name'];

        // if content exists than update the meta value
        update_post_meta( $post_id, 'my-first-field-name', $contents );
    }
}