block method
Blocks a user, hiding their messages and preventing contact.
Two-way effect: incoming messages from userId are dropped on
the server side, and the blocker can no longer DM the blocked
user either. Backend emits user_blocked so the blocker's other
devices update their contacts/DM lists. The blocked user is NOT
notified.
Implementation
@override
Future<ChatResult<void>> block(String userId) async =>
const ChatSuccess(null);