Depending on how big your data set is (this will get inefficient if very large) you can do something like this...
//Select and get the countries column.
$countries = DB::table('addresses')->select('country')->get();
//Get the unique values of countries from the collection
$uniqueCountries = $countries->unique();
//Array which will contain a single address from each country.
$singleAddresses = [];
//Loop over each unique country you retrieved from the database.
foreach($uniqueCountries as $country){
//Grab the first address to occur for whatever country is currently being iterated over in the loop.
$singleAddress = DB::table('addresses')->where('country','=',$country)->first();
//Push the first address found for the country into the array of single addresses from various countries.
array_push($singleAddresses,$singleAddress);
}
//Dump the array of collection to the page to make sure the output is what you want.
dump($singleAddresses);
Basically you'll want to grab only the countries column from your database through the select statement. This data is then returned to you as a collection. On that collection you can then use the unique method to get all the unique instances of country names.
Once you have your unique list of country names you can move onto grabbing an address for each country. This is done by looping over the unique set of countries one at a time. Making a database request to only select addresses where that county is, and then grab the first instance of an address within that country.
Once you have the object of that address data you'll want to push it into an array containing all the other single addresses from the countries you've retrieved.
Once the loop completes you'll have an array of Laravel collection objects with a single address from each country in your database.
Some other notes...