Processing Business Logic on user.saveUser
The user has already been saved at this point and is available as $event-&gt;params['user']. If you modify data and save again, however, you will need to be careful of creating an endless loop — not sure what you are trying to do. In this case you should be ok because of the "IsNewUser" conditional.

public function init() 
{
    parent::init();
    craft()-&gt;on('users.saveUser', function(Event $event) {

        if ($event-&gt;params['isNewUser']) {

            $user = $event-&gt;params['user'];
            // update default fields
            $user-&gt;firstName = "Bob";
            // update custom fields
            $user-&gt;getContent()-&gt;setAttributes(array(
                'phone' =&gt; "222-222-5555"
            ));
            // save user
            $success = craft()-&gt;users-&gt;saveUser($user);

            if (!$success) {
                MyPlugin::log('Couldn’t update user "'.$user-&gt;username.'"', LogLevel::Error);
            } else {
                MyPlugin::log('Successfully updated user "'.$user-&gt;username.'"', LogLevel::Info);
            }
        }

    });
}