Form validation for user account creation
Don't nest your conditions like this.  Validate the input up front and fail out if need be.

For example that might look like this:

if(empty($params['submit'])) {
   // no parameters set
   // log error, throw exception, etc. as approrpiate
}
if(Utilities::checkAllFieldsNotEmpty($params) === false) {
   // fail out
   // not sure if you really need this condition if you validate each field
   // individually
}
// etc.


Then I would suggest that your Admin class should abstract away the details of user creation away from this script.  Ideally this script could just have something like:

try {
    $user = Admin::createNewUser(...);
} catch (Exception $e) {
    // do something to handle exception
}


And createNewUser() would go through all the logic of for validating user name, setting up directories, etc.  This code should know nothing about what is required to create a "user" outside of whatever information needs to be passed (i.e. user name).