You should use set_transient this is stored and will show up after the page reloads as it is like cookies on the server side.
function SITE_profile_update_notice() {
// Add this to your code where you want to the transient to fire after function
set_transient( 'fx-admin-notice-panel', true, 5 );
}
/* Add admin notice */
add_action( 'admin_notices', 'fx_admin_notice_example_notice' );
/** Admin Notice on Activation. @since 0.1.0 */
function fx_admin_notice_example_notice(){
/* Check transient, if available display notice */
if( get_transient( 'fx-admin-notice-panel' ) ){
?>
<div class="updated notice is-dismissible">
<div class="notice"><p>Good Job!</p></div>
</div>
<?php
/* Delete transient, only display this notice once. */
delete_transient( 'fx-admin-notice-panel' );
}
}
This page might be perfect for your needs http://revelationconcept.com/wordpress-send-admin-notification-user-updates-profile/