Fixed the OTP functionality
This PR refactors the OTP verification flow to enhance the user experience and prepare for future features. It refines the VerificationCubit for better state management, adds meaningful error handling with informative messages in the failure state, and introduces clearer state transitions. A significant performance improvement is achieved by implementing const constructors for state classes, enabling compile-time constant creation and reducing memory allocation. These changes not only bring the application closer to industry standards but also lay the groundwork for implementing features like OTP resending and password reset in upcoming iterations, while improving maintainability and responsiveness. Unit tests have been added to verify the correctness of the changes, and the application has been tested on physical devices and emulators.