Unambiguity is an important criterion for an effective form that will be easy and quick to fill out. Therefore, the less controversial points in the form, the better. One of these ambiguous factors is the button in the form, which has a disabled state until all fields are filled in. To the user, it looks like a non-working form. Therefore, it is better to avoid this solution.
In a horizontal form, the button should be aligned to the left edge of the input fields, not to the edge of the labels. This will create vertical consistency and a single form reading line. The same can be done with the title of the form. Then the eye will simply glide over the form from top to bottom without wandering to the sides. The labels will be read by the peripheral vision.
In long and complex forms, it's a good idea to visually highlight the final button, for example, with a background. This allows it not to get lost among other form controls. Especially when the form has other buttons that add fields or data.
If clicking a button causes data to be added or appear under the input field, it is better to place the button to the right of the input field.
The "Forgot password" link should be placed contextually to the password field, so that it's as close to it as possible. If this link is at the beginning of the form, the user might not notice it.
The "Back" link is better placed at the beginning of the form and duplicated at the end of the form. Especially for long and complex forms. This will help the user navigate through the form at any given time.
When a form has multiple action buttons, it's best to arrange them in a row by priority of importance. This will make them more readable, understandable, and help reduce the risk of accidental clicks.