Given that there are no checked exceptions in Kotlin, are Result types the correct way to indicate an exception occurred to the caller?

For example, I have the following function in my code:

suspend fun addUserToSignInHistory(user: User): Result<Unit> {
    return try {
        preferencesStore.edit { preferences ->
            users.add(user.id)
            preferences[USERS_KEY] = users
        }

        Result.success(Unit)
    } catch (t: Throwable) {
        Result.failure(t)
    }
}

Given that edit may throw an IOException or an Exception as per the documentation, is this the ideal way of handling this?

1