In case of my BDD feature, I will try avoid unnecessary validations. I can rewrite it cut short is as given below.
Scenario: Verify user login
Given I am a registred user
And I am on a login page
When I enter username and password
And I click login button
Then I should be redirected to the system
Scenario: Forget password validation
Given I am on a login page
When I click on forget password menu
And I should be redirected to the password reset page
The I enter email address
And I click submit button
Then I should receive password reset email.
Scenario: Verify login with LinkedIn button
Given I am on login page
When I click on login with LinkedIn button
Then I am authenticated with LinkedIn
And I should be redirected to the system
I am reusing most of the given, when and then. Also, try to divide your tests into small small scenarios.
Hope that helps!