Creating a rule for changing user role when related profile is filed
This is doable with Rules:


Create rule that reacts on two events: 'After updating an existing profile' and 'After saving a new profile' - both are necessary because at some point, users might not have the profile created yet.
Add conditions to see if all fields are filled in (use "Data comparison", "Data value is empty" or "Text comparison" conditions and their negations based on what type of fields you have)
If all the conditions are met, give the role to the user with action "Add user role".


Btw. you do not have to worry if the user already has this role, it will not cause any unwanted behaviour if it is assigned several times.