How to write conditions based on user capabilities not on user role?

With current_user_can(), or $user->has_cap() for other users:.

if ( ! current_user_can( 'delete_post', $post_id ) ) {
    wp_die( __( 'Sorry, you are not allowed to move this item to the Trash.' ) );
}