Official Documentation: https://docs.joomla.org/Plugin/Events/System
A system plugin is not only useful for a wide variety of site tasks, but is also a good intro to the lifecycle. Take note of the naming coventions plg group name written camel case for the class and snake case for the the internal plugin name.
All active system plugins are ...
You are doing it right but your user object is not empty.
[id] => 0 because the current user is not logged in.
Try to login and do something like:
$user = Factory::getUser();
if ($user->id > 0)
echo 'Hello ' . $user->name;