force the state of the output
I may have a personal bias for the concept of finite state
machine. I find that some many problems become so easy when ween
approached from this perspective...
Let me rephrase your requirements, just to make sure I understood
correctly:

If the buzzer is OFF:

it should turn ON if the input rises (goes from LOW to HIGH)


If the buzzer is ON:

it should turn OFF if the input falls (goes from HIGH to LOW)
it should also turn OFF if the reset button is pressed



Or, as a state diagram:

Or, as code:
bool buzzer_is_on;  // state variable

void loop() {
    bool input_rises = ...:
    bool input_falls = ...;
    bool reset_pressed = ...;
    if (buzzer_is_on) {
        if (input_falls || reset_pressed) {
            digitalWrite(BUZZER_PIN, LOW);
            buzzer_is_on = false;
        }
    } else {  // buzzer is off
        if (input_rises) {
            digitalWrite(BUZZER_PIN, HIGH);
            buzzer_is_on = true;
        }
    }
}

Now, the trick (which I leave as an exercise), is to properly detect
when the input rises. This is not the same as the input being HIGH: if
the user presses reset, the buzzer should turn OFF, but it should also
stay OFF, even though the input remains HIGH. Hint: you not only have
to read the input, you also have to remember the state you saw the
previous time you read it. Or you can search “edge detection”.
Note that you do not need edge detection for the other transitions: you
can turn the buzzer OFF when the input goes LOW, but you can also turn
it OFF when the input is LOW. It should not make a difference.