dispose method
Cancels auth-failure subscriptions, closes the status stream, and disposes AuthFailureNotifier.
Must be called when the repository is no longer needed to prevent resource leaks.
Implementation
Future<void> dispose() async {
await _authFailureSub?.cancel();
if (!_statusController.isClosed) await _statusController.close();
await _authFailureNotifier.dispose();
}