Adding second owner to a pool using Adalite

Hello everyone,
I am in the process of adding a second owner to my pool. He is using a Ledger HW wallet.
We started in this order,
Th second owner download his stake.vkey and send it to me.
I have created the pool.cert using my key plus his key
I created a transaction as tx.raw with 2 witnesses
I signed as the first owner and created tx.signed
I send it to the second owner.
He used Adalite.io checked every parameter and signed than click download. Adalite produced witness.json file.
He send back to me and now I am confused.

I need to submit tx.signed using witness.json but I can not figure it out.

I have checked vacuumlabs explanation, link below, They explain that I need to assemble transaction using witness.json but how?

After the first attempt I thought maybe I should send the tx.raw file directly to the second owner expecting after he sing first, it will create tx.signed file but instead, he download witness.json again.

As far as I understand, I need to assemble a transaction instead of signing one.
The image below from a comment on the Adalite.io site for a different question but explaining what should I do, I guess…

image

If someone put some light on this, it would be great.

cardano-cli transaction assemble
–tx-body-file tx.raw
–witness-file node-cold.witness
–witness-file stake.witness
–witness-file payment.witness
–witness-file trezor_stake.witness
–out-file tx.multisign

cardano-cli transaction submit
–tx-file tx.multisign
–mainnet

Thanks @Vadimus but this solution requires the second owner restore his wallet into preferably air-gap PC in order to export skate2.hwsfile plus using Cardano-cli to create witness file.

I am trying to understand how Adalite.io doing without restoring the wallet to anywhere. As the second owner not much a techie person, your solution create different challenge for us.

Thanks again for your help.

hwsfile file is needed if you use cardano-hw-cli on PC, adalite reproduces cardano-hw-cli functions via web

cardano-cli transaction build-raw \
    ${tx_in} \
    --tx-out $(cat payment.addr)+${txOut} \
    --ttl $(( ${currentSlot} + 10000)) \
    --fee ${fee} \
    --certificate-file pool.cert \
    --out-file tx.raw


cardano-cli transaction witness \
  --tx-body-file tx.raw \
  --signing-key-file node.skey \
  --mainnet \
  --out-file node-cold.witness

cardano-cli transaction witness \
  --tx-body-file tx.raw \
  --signing-key-file stake.skey \
  --mainnet \
  --out-file stake.witness

cardano-cli transaction witness \
  --tx-body-file tx.raw \
  --signing-key-file payment.skey \
  --mainnet \
  --out-file payment.witness


cardano-hw-cli transaction witness \
  --tx-body-file tx.raw \
  --hw-signing-file trezor_stake.hwsfile \
  --mainnet \
  --out-file trezor_stake.witness


cardano-cli transaction assemble \
  --tx-body-file tx.raw \
  --witness-file node-cold.witness \
  --witness-file stake.witness \
  --witness-file payment.witness \
  --witness-file trezor_stake.witness \
  --out-file tx.multisign


cardano-cli transaction submit \
    --tx-file tx.multisign \
    --mainnet

In this script, you replace the part with cardano-hw-cli using adalite

Thanks @Vadimus for your help.
Although I just wanted to use adalite solution, I had to use your solution instead.

For future reference, I had to use an air-gaped node to create the hw.witness fie.

Thanks