Hello G.,
Here is a proposal, change 'Passenger' and 'System Administrator' order and add a level for Relationships, as:
@startuml
skinparam actorStyle stickman
left to right direction
' --- Styling ---
skinparam usecase {
BackgroundColor<<Hub>> #FFCC99
BackgroundColor<<Technical>> #E1D5E7
BackgroundColor<<Action>> #FFFFFF
BackgroundColor<<External>> #F5F5F5
}
' --- Actors (Left Side) ---
actor "System Administrator" as SysAdmin
actor Passenger
' --- System Boundary ---
rectangle "LongThangNaiKorTorMor System" {
(View Station Maps) as UC2
(Check Train/Bus Schedule) as UC3
(Top up Travel Card) as UC4
(View Travel History) as UC5
(Report Issue) as UC6
(Generate Payment QR / NFC) as UC_Pay
(Check Crowd Density) as UC_Crowd
(Plan Multi-Modal Journey) as UC1
(Deploy System Updates) as UC13
(Generate System Reports) as UC7
(Handle Feedbacks) as UC8
(API Management) as UC12
(Manage User Accounts) as UC9
(Monitor System Health) as UC11
(Configure GTFS Data) as UC_GTFS
(Login to Passenger Account) as LoginP <<Hub>>
(Verify Wallet Balance) as VerifyW <<Hub>>
(Login to Admin Panel) as LoginS <<Hub>>
(Update Transit Channels) as T1 <<Technical>>
(Upload Map Media) as T2 <<Technical>>
(Set Route Milestones) as T3 <<Technical>>
}
' --- Actors (Right Side) ---
' Defining these AFTER the rectangle forces them to the right
actor "Payment Scanner" as Scanner <<External>>
actor "Transit Operator API" as TransitAPI <<External>>
' --- Relationships (Left) ---
Passenger --> UC1
Passenger --> UC2
Passenger --> UC3
Passenger --> UC4
Passenger --> UC5
Passenger --> UC6
Passenger --> UC_Crowd
Passenger --> UC_Pay
SysAdmin --> UC7
SysAdmin --> UC8
SysAdmin --> UC9
SysAdmin --> UC_GTFS
SysAdmin --> UC11
SysAdmin --> UC12
SysAdmin --> UC13
' --- Internal Logic ---
UC_Pay ..> LoginP : <<include>>
UC_Pay ..> VerifyW : <<include>>
UC4 ..> LoginP : <<include>>
UC5 ..> LoginP : <<include>>
UC9 ..> LoginS : <<include>>
UC11 ..> LoginS : <<include>>
UC12 ..> LoginS : <<include>>
UC_GTFS <.. T1 : <<extend>>
UC_GTFS <.. T2 : <<extend>>
UC_GTFS <.. T3 : <<extend>>
' --- Relationships (Right) ---
' Using the syntax "UseCase -- Actor" pushes the actor to the right
UC_Crowd --- TransitAPI
UC1 --- TransitAPI
UC_Pay --- Scanner
@enduml
Enjoy,
Regards,
Th.