collect
Pairs the device with a PingOne MFA account using the pairingKey received from the DaVinci server, then stores the outcome for submission via payload.
This is a suspending function and must be called from a coroutine. The UI should display a loading indicator while this call is in progress.
On success, stores { "status": "CLAIMED" } and returns Result.success. On failure, stores { "error": { "code": "…", "message": "…" } } and returns Result.failure with the underlying PingOneMFAException.
If cancel is called while this function is awaiting a pairing result, the native outcome is discarded so the user-canceled payload is preserved. The Result value from the native SDK is still returned to the caller so it can be logged or forwarded to telemetry.
Return
Result.success if pairing succeeded, or Result.failure with the underlying PingOneMFAException.