So font name used here:
$fonts[] = 'caviardreams';
Must match the font-family added to your @font-face CSS
font-family: 'caviar_dreamsregular',
So replace your function with this:
add_filter( 'generate_typography_default_fonts', function( $fonts ) {
$fonts[] = 'caviar_dreamsregular';
$fonts[] = 'caviar_dreamsitalic';
$fonts[] = 'caviar_dreamsbold';
$fonts[] = 'caviar_dreamsbold_italic';
return $fonts;
} );
Then you should see all 4 of your fonts in the customizer…. and selecting them should now work.