How to limit the number of posts a user can view based on status

Just giving you a general idea which may help you. You can try something like below in WordPress –

1) Add a functionality to have usermeta as active or pending

e.g.

update_user_meta($user_id, '_user_custom_status', 'active');

2) Do not show any post for non logged in user.

3) On login, check for user with subscriber role and check its status from usermeta

$status = get_user_meta($user_id, '_user_custom_status', true);

4) Prepare the WP Query to limit the posts for the current user

e.g. you may try as following –

$query = new WP_Query( array( 'posts_per_page' => 3 ) ); //you may want to display some specific posts or just latest 3 posts or older 3 posts etc, you can change the query according to that

Note:
This is just a general idea based upon which you can implement your code as per your requirements. See if this helps.