Misleading documenation?

Given:
first_profile in ~/.aws/credentials

[first_profile]
aws_access_key_id=ACOYHFVDLCHVNOISYGV
aws_secret_access_key=RApidgudsphAFdIK+097dslvxchnv

and a backend_role whose role_arn in ~/.aws/config:

[profile backend_role]
role_arn=arn:aws:iam::123456789101:role/roleA
source_profile=first_profile

Access Confirmed
using aws cli, I confirm that first_profile can assume backend_role and has permissions to an s3 bucket and dynamodb table by running:

aws s3 ls s3://random-tf-state-bucket --profile backend_role

aws dynamodb describe-table --table-name random-tf-state-lock-table --profile backend_role --region us-east-2

The above commands do not return (AccessDenied) thus conforming access

Expectation:
According to terraform documenation/blog Given main.tf file set up like the below:

	terraform {
	  required_version = "1.0.4"
	  required_providers {
	    aws = {
	      source  = "hashicorp/aws"
	      version = "3.53.0"
	    }
	  }
	}

	terraform {
	  backend "s3" {
	  }
	}

	provider "aws" {
          profile                 = "first_profile"
	  region                  = "us-eat-1"
	  shared_credentials_file = "~/.aws/credentials"

	  assume_role {
	    role_arn    = "role_arn=arn:aws:iam::123456789101:role/roleA"
	  }

	}

and s3.backend.tfvars file:

bucket         = "random-tf-state-bucket"
key            = "terraform.tfstate"
region         = "us-east-2"
dynamodb_table = "random-tf-state-lock-table"
encrypt        = true

running terraform init -backend-config=s3.backend.tfvars should work.

Result:

Initializing the backend...
╷
│ Error: error configuring S3 Backend: no valid credential sources for S3 Backend found.
│
│ Please see https://www.terraform.io/docs/language/settings/backends/s3.html
│ for more information about providing credentials.
│
│ Error: NoCredentialProviders: no valid providers in chain. Deprecated.
│ 	For verbose messaging see aws.Config.CredentialsChainVerboseErrors

Question:
What step in this process am I missing?

Similar issue already reported here was helpful in getting a solution.

Solution:
The key to this was realizing that the profile used to configure the S3 backend is its own thing - that is it is not tied to provider block.

Thus s3.backend.tfvars looks like this:

bucket         = "random-tf-state-bucket"
key            = "terraform.tfstate"
region         = "us-east-2"
dynamodb_table = "random-tf-state-lock-table"
encrypt        = true
profile        = "backend_role"

and my provider block ended up looking like:

provider "aws" {
  region    = var.aws_region
  profile   = var.some_other_profile
}