Per entity settings storage (configuration / state / field)
Core provides a storage/API to store per-user information: the user.data service. It also provides a very simple example implementation in the Contact module: See contact_form_user_form_alter() and contact_user_profile_form_submit().

\Drupal::service('user.data')-&gt;set('contact', $account-&gt;id(), 'enabled', (int) $form_state-&gt;getValue('contact'));
$account_data = \Drupal::service('user.data')-&gt;get('contact', $account-&gt;id(), 'enabled');