Laravel - Repetitive code in store and update functions
No need to get all data from database. Instead, only update those rows that need to be updated. Only if needed, you should work with database, avoid otherwise. Database I/O is biggest speed consumer in web applications and generally in PHP applications [when used]. https://laravel.com/docs/master/eloquent#updates

Check this one for store method, should work way faster:

public function store(Request $request)
{
    $user = Auth::user();

    $validatedData = $request-&gt;validate([
        'street' =&gt; ['required', 'string'],
        'number' =&gt; ['required', 'string'],
        'city' =&gt; ['required', 'string'],
        'state' =&gt; ['required', 'string'],
        'postal_code' =&gt; ['required', 'string'],
        'country' =&gt; ['required', 'string'],
        'phone' =&gt; ['required', 'string']
    ]);

    $billing = $request-&gt;is_billing ?? 0;
    if ($billing) {
        Address::where(['is_billing' =&gt; 1])-&gt;update(['is_billing' =&gt; 0]);
    }

    $address = Address::create([
        'user_id' =&gt; $user-&gt;id,
        'token' =&gt; Str::random(32),
        'street_name' =&gt; $request-&gt;street,
        'house_number' =&gt; $request-&gt;number,
        'postal_code' =&gt; $request-&gt;postal_code,
        'state' =&gt; $request-&gt;state,
        'city' =&gt; $request-&gt;city,
        'country_id' =&gt; $request-&gt;country,
        'phone' =&gt; $request-&gt;phone,
        'is_billing' =&gt; $billing
    ]);

    return redirect('/dashboard/user/' . $user-&gt;user_token . '/addresses');
}


Next, insted line $user = Auth::user(), you can work with policies ( https://laravel.com/docs/master/authorization ). In docs you can see PostPolicy how's been created and yours should be named AddressPolicy.
And also, you should move validation to request file created with let's say

php artisan make:request AddressStoreRequest


Again, in docs you will find how to set code there ( https://laravel.com/docs/master/validation#creating-form-requests ).
That is what you can do to release controller method of code and set those code blocks in their respective classes. Although your code (way I wrote it above avoiding unnecessary DB calls) will work the same even if you don't make separate classes for form validation or for authorization.

Use this code and make similar for update method.